您的位置:首页 > 编程语言 > C语言/C++

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

2017-12-15 17:58 453 查看
本篇作者强调 “宁可以编译器替换预处理器”. 因为预处理器会先于编译器使用。

从C语言继承来的宏,在预处理阶段会被替换掉。 那么到了编译阶段,使用宏的时候的记号名称有可能没有进入记号表内。

而const, inline,enum可以获得宏带来的效率,以及类型安全性等。

1. 作者介绍了enum hack技术: 使用enum来代替宏

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


这种技术我在leveldb的源码中也见到过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++
相关文章推荐