关于const,内联函数和宏

const 常量有数据类型,而宏常量没有数据类型。所以编译器可以对const进行类型安全检查,但不会对宏做类型检查,只是简单的替换。在C++中,const已经完全可以取代宏变量了。

C默认const是外部链接的,所以const a;对于C编译器来说是正确的,它把语句作为一个声明,这个声明指明在别的地方有内存分配。

而C++默认内部链接,const a 语句会报错,应该改成 extern const a。

PS:在C++中,非const变量默认为外部链接。


宏不是函数,只是在编译前(编译预处理阶段)将程序中的有关字符串替换成宏体。

inline 函数时函数,但是在编译中不单独产生代码,而是将有关代码嵌入到调用处,从而省去了函数调用的系统开销。

与宏相比,inline更安全可靠,虽然这个是以空间开销为代价的。因此,除非一个小而简单的函数经常被重复调用,否则不建议使用内联函数。


宏的第一规则是:绝不应该去使用它,除非你不得不这么做。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值