#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 所在行的后面 这些注释在编译和程序运行期间将被忽略
示 例
下面的示例创建了一个名称为 MYDEFINE 的编译时期常量 如果编译时期常量已经定义 #IFDEF ......#ENDIF 会显示信息
#DEFINE MYDEFINE 1
MYDEFINE
WAIT WINDOW "MYDEFINE exists"
WAIT WINDOW "MYDEFINE does not exist"
请 参 阅
COMPILE ,# DEFINE ......#UNDEF ,# IF ......#ENDIF ,# INCLUDE