#include<stdio.h>
#define A 1
int main()
{
int a=1;
/*
此语句有错误,条件编译指令为预编译指令
在预编译时程序还未运行,因此无法取得变量a的值
#if(a==1)
printf("错误语句");
#endif
*/
//可以省略()写成 #if A==1 ;#elif,#else也如此
#if (A==1)
printf("语句1\n");
#elif (A==2)
printf("语句2\n");
#else
printf("语句3\n");
//必须写,很重要,如果不写,会认为#else直到文件结尾才结束
#endif
#if defined A
printf("定义了宏A\n");
#endif
#ifdef A
printf("定义了宏A\n");
#endif
#if !defined(A)
printf("未定义宏A\n");
#endif
#ifndef A
printf("未定义宏A\n");
#endif
return 0;
}
/*
编译结果与编译以下内容相同
#include<stdio.h>
#define A 1
int main()
{
int a=1;
printf("语句1\n");
printf("定义了宏A\n");
printf("定义了宏A\n");
return 0;
}
*/
运行结果
语句1
定义了宏A
定义了宏A