#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"