本文详细介绍了C语言中的宏定义,包括宏常量的使用、__func__等预定义宏以及如何获取文件名、日期和行号。同时,讨论了宏的二义性问题,并给出了避免宏二义性的方法。此外,还讲解了预处理指令的作用,如#include头文件的导入方式及预处理结果的查看。最后,提到了宏函数的特点,如不检查参数类型和传参过程。

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


#define 定义宏
宏常量: #define MAX 100 优点提高可扩展性,安全性可读性,可以和case配合使用
__func__获取函数名 %s __FILE__获取文件名%s __DATE__获取当前日期 %s__TIME__获取当前时间%s__LINE__获取当前行号 %d
宏的二义性:由于宏代码所处的位置,参数不同导致宏有不同功能,这就叫做宏的二义性 如何避免宏的二义性: 宏函数整体加小括号,每个参数都要加小括号注意:使用宏函数时不要提供带自变运算符的变量作为参数
预处理指令:程序员所编写的代码不能被真正的编译器所编译,需要一段程序把代码翻译一下,翻译的过程叫做预处理,执行翻译的程序叫做预处理器,被翻译的代码叫做预处理指令,以#开头都是预处理指令
预处理指令的分类
#include <> 从系统指定的目录下查找头文件并导入
#include ""先从当前目录下查找头文件,如果找不到再从系统指定目录查找并导入
查看预处理结果:gcc -E code.c 把预处理结果直接显示到终端上。gcc -E code.c -o code.i把预处理得结果存储到i结尾的文件中
宏函数:带参数的宏,不是真正的函数,不检查参数的类型,没有传参,没有返回值,只有计算结果 #define SUM(a,b) a+b 1、把代码中使用的宏函数替换为宏函数后的代码 a+b 2、把宏函数代码中使用的参数替换为调用者提供的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值