C语言 第二十章 预处理指令2-条件编译

一,基本用法
#if 条件1
…code1…//条件一成立时才编译
#elif 条件2
…code2…//条件二成立时编译
#else
…code3…//条件一,二都不成立时编译
#endif //条件编译结束
#if 和 #elif后面的条件一般是判断宏定义而不是判断变量,
因为条件编译是在编译之前做的判断,
宏定义也是编译之前定义的,
而变量是在运行时才产生的、才有使用的意义

#include <stdio.h>
#define MAX 11

int main()
{
#if MAX ==0
printf(“MAX是0”);
#elif MAX >0
printf(“MAX大于0”) ;
#else
printf(“MAX小于0”);
#endif
return 0;
}

//三,其它用法
1,#if define()和if !definde()的用法
判断宏的值还可以判断是否定义过某个宏
#if defined(MAX)
…code…//如果前面定义过MAX这个宏,就将code编译进去
#endif

条件取反
#if !defined(MAX)
...code...//如果前面没有定义过MAX这个宏,就将code编译进去 
#endif

2,#ifdef和#ifndef的使用//和 1 用法相同 
#ifdef MAX
...code...//若前面定义过这个宏就将code编译进去 
#endif 

#ifndef MAX
...code...//如果前面没有定义过MAX这个宏,就将code编译进去 
#endif
上一篇:c调用c++函数


下一篇:C/C++预处理指令#define,#ifdef,#ifndef,#endif…