预处理/宏

本文介绍了C语言的预处理指令,包括查看预处理结果、#define定义宏、宏常量及其优点、预定义宏、宏函数、宏的二义性问题及避免方法、条件编译、头文件卫士、编译时的版本控制以及系统位数判断。通过实例展示了宏在编程中的应用和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

预处理指令:

程序员所编写的代码不能被真正的编译器所编译,需要一段程序把代码翻译一下。
翻译的过程叫做预处理,执行翻译的程序叫做预处理器,被翻译的代码叫做预处理执行指令,以
#开头的都是预处理指令

查看预处理结果:

    gcc -E code.c   把预处理的结果直接显示到终端上
    gcc -E code.c -o code.i     把与处理结果寄存到.i结尾的文件中

预处理指令的分类
    #include    文件包含
    #include< >     从系统指定的目录下查找头文件并导入
    #include" "     先从当前目录下查找头文件,如果找不到再从系统指定目
    录查找并导入

    注意:可以通过修改~/.bashrc 的环境变量来增加系统指定的目录
        export C_INCLUDE_PATH=$C_INCLUDE_PATH:路径  但不建议修改

#defint 定义宏

宏常量: #define MAX 100
#define 宏名 字面值数据
优点:提高可扩展性(批量性修改)、提高了安全性(常量)、提高可读性、
可以与case配合使用
注意: 一般宏名全部大写
一般局部变量全部小写、全部变量首字母大写、函数名全部小写用下划线分隔、
宏名全部大写、指针变量+p、数组arr、字符串str
预定义的宏:
__ func__ 获取函数名 %s
__ FILE__ 获取文件名 %s
__ DATE__ 获取当前日期 %s
__ TIME__ 获取当前时间 %s
__ LINE__ 获取当前行号 %d

宏函数:带参数的宏
不是真正的函数
#define SUM(a,b) a+b
1、把代码中使用的宏函数替换为宏函数后面的代码 a+b
2、把宏函数代码中使用的参数替换为调用者提供

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值