C 预处理 之"条件编译"

C 预处理 主要有三个方面的内容:

序号描述
1展开所有的头文件
2宏定义的替换
3解析条件编译 并添加到文件中

    预处理命令 以符号"#"开头。

    采用 条件编译,可以减少被编译的语句,从而减少目标的长度。当 条件编译 段比较多时,目标程序长度可以大大减少。

 

条件编译 主要包括:

序号命令含义
1#if编译预处理 的 条件命令,相当于C语言中的 if 语句
2#ifdef判断某个宏是否被定义,如果已经定义,执行随后的语句
3#ifndef#ifdef 相反,判断某个宏是否未被定义
4#elif#if#ifdef#ifndef 或前面的 #elif 条件不满足,则执行 #elif 之后的语句,相当于C语法中的 else-if
5#else#if#ifdef #ifndef 对应, 若这些条件不满足,则执行 #else 之后的语句,相当于C语法中的 else
6#endif#if#ifdef , #ifndef 这些条件命令的结束标志
7#defined#if, #elif 配合使用,判断某个宏是否被定义

应用举例:

#if  可支持 同时判断多个宏的存在,与 常量表达式配合使用。常用格式如下:

条件编译 中相对常用的 预编译指令。模式如下:

在 判断某个宏 是否被定义时,应当避免使用 #if ,因为该宏的值可能就是被定义为0。而应当使用 #ifdef#ifndef

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值