effective C++ 2_尽量以const,enum,inline替换#define 的学习
2017-12-15 17:58
453 查看
本篇作者强调 “宁可以编译器替换预处理器”. 因为预处理器会先于编译器使用。
从C语言继承来的宏,在预处理阶段会被替换掉。 那么到了编译阶段,使用宏的时候的记号名称有可能没有进入记号表内。
而const, inline,enum可以获得宏带来的效率,以及类型安全性等。
1. 作者介绍了enum hack技术: 使用enum来代替宏
这种技术我在leveldb的源码中也见到过。
从C语言继承来的宏,在预处理阶段会被替换掉。 那么到了编译阶段,使用宏的时候的记号名称有可能没有进入记号表内。
而const, inline,enum可以获得宏带来的效率,以及类型安全性等。
1. 作者介绍了enum hack技术: 使用enum来代替宏
class GamPlayer { private: enum { NumTurns = 5 }; //"the enum hack" int scores[NumTurns]; ... };
这种技术我在leveldb的源码中也见到过。
相关文章推荐
- Effective C++学习笔记 条款02:尽量以const,enum,inline替换 #define
- 《Effective C++》学习笔记条款02 尽量以const,enum,inline替换#define
- 读书笔记《Effective C++》条款02:尽量以const,enum,inline替换#define
- Effective C++_笔记_条款02_尽量以const、enum、inline替换#define
- effective C++(第三版)读书笔记一——条款二:尽量以const,enum,inline替换#define
- 《Effective C++》尽量以const,enum,inline,替换#define
- Effective C++ 条款2 尽量以const,enum,inline替换#define
- 《Effect C++》学习------条款02:尽量以const,enum,inline替换#define
- Effective C++阅读笔记_条款2:尽量以const,enum,inline替换#define
- 《effective c++》条款二:尽量以enum,const,inline替换#define
- effective C++ 读后感(二) 尽量以const, enum, inline替换 #define
- Effective c++ 笔记二—尽量以const ,enum,inline替换#define
- 《Effective C++》读后总结(二)尽量以const,enum,inline替换#define
- Effective C++ 读书笔记——条款2:尽量以const,enum,inline替换#define
- 《Effective C++》Item2:尽量以const,enum,inline替换#define
- Effective C++ 之 Item 2:尽量以 const, enum, inline 替换 #define
- 重读经典-《Effective C++》Item2:尽量以const,enum,inline替换#define
- 重读经典-《Effective C++》Item2:尽量以const,enum,inline替换#define
- [转]Effective C++ 02 尽量以const, enum, inline替换#define 笔记
- [Effective C++ --002]尽量以const,enum,inline替换#define