【C++】宏函数和内联函数的区别

本文探讨了C++中的宏函数和内联函数,指出内联函数旨在解决宏定义的缺点,如类型安全和调试问题。内联函数在编译时展开,提供类型检查,而宏在预编译时进行文本替换。内联函数适用于访问类的保护和私有成员,但并非所有函数都适合内联,因为它们可能导致代码膨胀。

宏优点

  • 代码复用性
  • 提高性能

宏缺点

  • 不可调试(预编译阶段进行了替换),
  • 无类型安全检查
  • 可读性差,容易出错。

这里附上《c和指针》中的一张表格,总结宏和函数十分到位,我就不多说了
在这里插入图片描述
#define定义一个比如判断大小,替换常量,很是方便。

不过现在也就用下,#define ERROR_POWEROFF -1,#define _CRT_SECURE_NO_WARNINGS 1这样的和编译器有关的东西,不会去写宏函数,宏函数这东西,可读性特别差,在c++中,一般用const/枚举/内联去替代宏。

但是,define宏在某些方面真的是非常好用
1.替代路径

#define ENG_PATH_1 C:\Program Files (x86)

2.针对编译器版本不兼容报错

#define _CRT_SECURE_NO_WARNINGS 1

3.条件编译

#ifdef 标识符
程序段 1
#else
程序段 2
#endif

4.使用库中的宏
vc++中有许多有意思的宏,都是大牛们写出来的,真的是充满智慧,十分刁钻,怎么学也学不完,我个人担心出错就很少写宏,用函数代替了

宏函数和inline函数的区别

inline函数是C++引入的机制,目的是解决使用宏定义的一些缺点。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值