When using a statement like #if TRUE, what should I expect to happen? An explanation would be very appreciated! I understand how #if 1 works, but it gives a completely different result in my code than using #if TRUE. I understand #if is a conditional directive, and what that implies; it’s just the TRUE (or FALSE) part that I don’t understand. It seems as though using it in this way never executes code following the statement. Here is an example:
#if TRUE
cout << "true" << endl;
#endif
#if FALSE
cout << "false" << endl;
#endif
I never seem to see "true" or "false" printed to screen and using Visual Studio, the inner statement is automatically grayed out.
The preprocessor will include/exclude the contents of an
#if #endifblock depending on wether the expression after#ifevaluates to true or false.#if TRUEwill only evaluate to true ifTRUEis definedTRUE!= 0In your example neither
TRUEnorFALSEare defined so both blocks are false and excluded.