2. C语言条件编译

1. 条件编译

1.1 判断是否被定义

    #define __DEBUG__ 1
    // 如果定义了 __DEBUG__ 宏定义,才会进行接下来的编译
    #ifdef __DEBUG__
    // ==>#if !defined(__DEBUG__)
        语句;
    #endif

1.2 条件编译

    #if 常量表达式(为真编译,为假,不编译)
        语句;
    #endif

1.3 多分支条件编译

    #if 常量表达式
        语句;
    #elif 常量表达式
        语句;
    #elif 常量表达式
        语句;
    #else
        语句;
    #endif

1.4 嵌套指令

  预处理指令可以进行嵌套。

    pragma onec // 防止头文件被多次引用

    #if defined(OS_UNIX)
        #ifdef OPTION1
            unix_version_option1();
        #endif
        #ifdef OPTION2
            unix_version_option2();
        #endif
    #elif defined(OS_MSDOS)
        #ifdef OPTION2
            msdos_version_option2();
        #endif
    #endif

2.其它

2.1 头文件的包含

    #include <filename>
        //直接去库目录下查找
    #include "filename"
        //先查找当前工作目录下查找,然后去库目录查找

2.2 #error “…”

  遇到#error便会产生一个编译错误。

2.3 assert断言

  善用断言,头文件为 assert.h。

    // 当 () 内的条件不成立时触发断言
    assert(i == 1);

  在debug版本中使用,release版本中自动清除,即断言会全部被清除。

相关内容可参考
《C语言深度解剖》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值