C语言中,#if defined(terms)的作用浅析
在C语言程序中,经常见到的如下面这样的写法,
#if defined(terms)
statements1
statements2
statements3
.........
#endif
这种表达在实际程序运行中到底起什么作用呢?下面跟着编译器来实际验证一下它在程序中所起的作用。
在编译器Dev C++中写如下测试代码:
上面代码的运行结果如下:
从运行结果可以看到,两个printf语句都执行了。
然后将程序中#define SIZE这一行注释掉,如下图所示:
代码修改之后运行结果如下:
从第二次运行结果可以看出,把define SIZE注释掉之后,#if defined(SIZE)和#endif之间的printf语句没有运行。
从上面的验证过程可以看出,#if defined(SIZE) 和#endif是用来定义条件编译的,相当于定义了一个编译条件,满足这个条件的时候,#if defined(SIZE) 和 #endif 之间的语句才会被编译执行。如果不满足,编译的时候这些语句就会被直接省略掉了。
代码附录如下:
#include <stdio.h>
//#define SIZE
int main(void)
{
int a = 3;
int b = 4;
#if defined(SIZE)
printf("\t%d\n",a);
#endif
printf("\t%d\n",b);
}