宏的优缺点以及解决办法

本文探讨了宏常量和宏函数的优缺点,指出宏在预处理阶段进行替换导致的安全性和调试问题。建议使用const修饰的常量替换宏常量以提高代码安全性。对于宏函数,推荐使用内联函数,因为它们提供类型检查、可调试性且没有副作用。然而,内联函数可能导致代码膨胀。最后,文章提到了编译器对内联函数的处理策略和内联函数的文件作用域问题。
摘要由CSDN通过智能技术生成

宏常量:为了实现简单,会定义宏常量
优点:1.一改全改,2.降低出错率,3.可读性高,
缺点:在预处理阶段进行替换,不会进行类型检测,安全性低(如果写错因为在预处理阶段不会在文件定义宏处报错,而会在使用处报错);
建议:尽量使用const修饰的常量替换宏常量
宏函数
优点:
1.不是函数,少了函数调用,提高程序运行效率,
2.少写代码:因为宏函数是多条语句的封装—注意:不能提高代码复用率,因为宏函数在预处理阶段就展开了
3.可以提高代码的可读性
缺点:
1.在预处理阶段被替换,不会进行类型检测,代码安全性低
2.在预处理阶段展开–>不能调试
3.每个使用部分都会展开---->造成代码膨胀
4.容易出错,每个部分需要加括号
5.宏函数可能会有副作用
eg:宏函数可能会有副作用

#define Max(a,b) ((a)>(b))?a:b;
int main()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值