Declaration directives
The declaration directives are used to define or undefine conditional compilation symbols. pp-declaration: pp-new-line: The processing of a #define directive causes the given conditional compilation symbol to become defined, starting with the source line that follows the directive. Likewise, the processing of an #undef directive causes the given conditional compilation symbol to become undefined, starting with the source line that follows the directive. Any #define and #undef directives in a source file must occur before the first token (§2.4) in the source file; otherwise a compile-time error occurs. In intuitive terms, #define and #undef directives must precede any “real code” in the source file. The example: #define Enterprise #if Professional || Enterprise namespace Megacorp.Data is valid because the #define directives precede the first token (the namespace keyword) in the source file. The following example results in a compile-time error because a #define follows real code: #define A A #define may define a conditional compilation symbol that is already defined, without there being any intervening #undef for that symbol. The example below defines a conditional compilation symbol A and then defines it again. #define A A #undef may “undefine” a conditional compilation symbol that is not defined. The example below defines a conditional compilation symbol A and then undefines it twice; although the second #undef has no effect, it is still valid. #define A
|