6.10.1 conditions include
Constraints
1, the control condition contains the expression should be an integer constant expression, in addition to: identifiers (including those that are lexical and the same as the keyword) are resolved to the following description; [Note: Because the control constant expression is computed during phase 4 of the translation period, all identifiers are either macro names or macro names-- They are not keywords, enumeration constants, and so on. ] and it can contain a single-mesh operator expression form
defined identifier
Or
defined ( identifier )
The above form will be calculated as 1 if the identifier is currently defined as a macro name (that is, if it is already predefined, or if it already belongs to a #define preprocessing indicator without an intervening #undef Indicator with the same owning identifier), if the identifier is not currently defined as a macro name, it is evaluated as 0.
2.
ISO/IEC 9,899:2011 clause 6.10.1--conditions include