#IFDEF | #IFNDEF ... #ENDIF 预处理器命令
编译期间,根据是否定义了某一个编译常量,决定一段代码是否要编译。
语法
#IFDEF | #IFNDEF ConstantName
Commands
[#ELSE
Commands]
#ENDIF
参数
#IFDEF
指定如果已定义了 ConstantName 指定的编译常量,则编译一段程序代码。
下面描述如何根据 #IFDEF 预处理器命令确定要编译的程序代码:
- 如果定义了 ConstantName,则要编译从 #IFDEF 到 #ELSE 或者 #ENDIF (取决于哪个在前面)之间的程序代码。
- 如果没有定义 ConstantName,但有 #ELSE 命令,则编译 #ELSE 到 #ENDIF 之间的程序代码。
- 如果没有定义 ConstantName,也没有 #ELSE 命令,则 #IFDEF ... #ENDIF 结构中的所有程序都不编译。
#IFNDEF
当没有定义 ConstantName 指定的编译常量时,指定要编译的一组程序代码。
下面描述如何根据 #IFNDEF 预处理器命令决定要编译的程序代码:
- 如果没有定义 ConstantName,则编译 #IFNDEF 到 #ELSE 或者 #ENDIF(取决于哪个在前面)之间的程序代码。
- 如果已经定义了 ConstantName,并且有 #ELSE 命令,则编译 #ELSE 到 #ENDIF
之间的程序代码。 - 如果定义了 ConstantName,但没有 #ELSE 命令,则 #IFNDEF ... #ENDIF 结构中的所有程序都不编译。
ConstantName
指定编译时间所用的常量。它的存在决定了是否编译某一组程序代码。编译常量由 #DEFINE 命令定义。
Commands
指定要编译的程序代码。
说明
一个 #IFDEF | #IFNDEF ... #ENDIF 结构可以嵌套另一个#IFDEF | #IFNDEF ... #ENDIF
结构。
注释可以放在 #IFDEF、#IFNDEF、#ELSE
和 #ENDIF 所在行的后面。这些注释在编译和程序运行期间将被忽略。