#ifndef...#endif
用于进行条件编译。
格式
#ifndef识别符...为进行条件编译的源代码
[#else]...条件为真时的源代码
#endif
参数
- 识别符
- 是用户定义的关键字。未定义时,从#ifndef到#else或#endif的源代码将被编译。此识别符作为进行编译的条件而起作用。
说明
此命令也叫“如果未定义”命令,将检查与#ifdef相反的条件。#ifndef...#else...#endif用于进行已选择的源代码的条件编译。#else语句可以省略。
[已定义时] 如果#else语句正在使用,将编译#else和#endif之间的语句。#如果未使用#else语句,将不编译#ifndef和#endif之间的语句。
[未定义时] 如果#else语句正在使用,将不编译#else和#endif之间的语句。#如果未使用#else语句,将编译#ifndef和#endif之间的语句。
注意
#ifdef和#ifndef的差异
#ifdef用于在已定义识别符时编译指定的源代码。而#ifndef则用于在未定义识别符时编译指定的源代码。
参阅
#define, #ifdef
#ifndef使用示例
下例为使用#ifndef的程序例。在下例中,可以根据有无#define NODELAY模拟命令的定义来控制是否输出变量A$的值。如果#define NODELAY模拟命令在源码中在这里记载的示例部分之前就被使用,则在编译时,Wait 1的行将不会与该程序源码的其他部分一起被编译。如果#define NODELAY模拟命令未在记载的部分之前使用(就是说未定义NODELAY),Wait 1的行将被编译并之后会在程序中被执行。此时将输出字符串“The End”,而与#define NODELAY模拟命令无关。
'如果要延迟,可对以下的行添加注释
#define NODELAY 1
Input #1, A$
#ifndef NODELAY
Wait 1
#endif
Print "The End"