关于条件编译的使用

关于条件编译的使用
1.代码如下图所示,宏定义dig为1,则#if条件编译通过,若dig为0,则#else条件编译通过。
#include<stdio.h>
#define dig 0
int main()
{
int i;
#if dig
printf(“定义dig为真!”);
#else
printf(“定义dig为非真!”);
#endif
return 1;
}
关于条件编译的使用
下面为一些示例代码。
关于条件编译的使用关于条件编译的使用

  1. 防止头文件被重复引用#ifndef TEST_H#define TEST_H#endif如果test1.h、test2.h都引用了test.h,且main.c中同时引用了test1.h,test2.h,那么会出现头文件重复被引用的现象。(从https://baijiahao.baidu.com/s?id=1603659929544050926&wfr=spider&for=pc转载)。

(1)
#ifndef <标识符>
程序段A
#else
程序段B
#endif
若宏定义标识符,则执行B;若没有定义,则执行A
(2)
#ifdef <标识符>
程序段A
#else
程序段B
#endif
若宏定义标识符,则执行A;若没有定义,则执行B
(3)
#if 常量表达式
程序段A
#else
程序段B
#endif
若常量表达式为真,编译A ; 若为假,编译B