effective C++ 2_尽量以const,enum,inline替换#define 的学习

本文探讨了在现代编程实践中,如何用const、inline和enum等特性替代传统的预处理器宏。特别是介绍了一种称为enumhack的技术,该技术利用enum类型提供更安全、高效的常量定义方式。

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

本篇作者强调 “宁可以编译器替换预处理器”. 因为预处理器会先于编译器使用。
从C语言继承来的宏,在预处理阶段会被替换掉。 那么到了编译阶段,使用宏的时候的记号名称有可能没有进入记号表内。
而const, inline,enum可以获得宏带来的效率,以及类型安全性等。
1. 作者介绍了enum hack技术: 使用enum来代替宏

class GamPlayer {
private:
    enum { NumTurns = 5 };  //"the enum hack"
    int scores[NumTurns];
    ...
    };

这种技术我在leveldb的源码中也见到过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值