条件编译

#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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值