Interesting. I don't think I ever tried to use a macro in the conditional expression of a #if, except inside a defined() or undef(). From my time on the C committee, I recall that the preprocessor was a royal pain to get right. It has it's own set of token rules that aren't the same as C itself, for example.
I am also reminded of the button I used to have that said, "Defining define is undefined."
I am also reminded of the button I used to have that said, "Defining define is undefined."