学科分类
目录
C语言

#if#else#endif

在C语言中,最常见的条件编译指令是#if #else #endif指令,该指令根据常数表达式决定某段代码是否执行。通常情况下,#if指令、#else指令和#endif指令结合在一起使用,其语法格式如下:

#if 常数表达式
  程序段1
#else
  程序段2
#endif

上述语法格式中,编译器只会编译程序段1或者程序段2。如果常量表达式条件成立,编译器会编译程序段1,否则编译程序段2。

接下来通过一个案例演示如何使用#if/#else/#endif指令输出程序对不同平台的支持,如例1所示。

例1 endif.c

 1  #include <stdio.h>
 2  //定义宏
 3  #define WIN32  0
 4  #define x64   1 
 5  #define SYSTEM WIN32
 6  int main() 
 7  {
 8  //通过判断宏SYSTEM的值,输出程序支持的平台
 9  #if SYSTEM == win32
 10   printf("win32\n");
 11 #else
 12   printf("x64\n");
 13 #endif
 14   return 0;
 15 }

例1运行结果如图1所示。

图1 例1运行结果

在例1中,第3~4行代码定义了两个宏,分别用于表示Windows32位和64位平台;第5行代码定义了宏SYSTEM,其值为WIN32。由于定义的宏SYSTEM是32位,因此,在使用条件编译指令判断SYSTEM值时,#if条件成立,程序输出了win32。

点击此处
隐藏目录