Effective C++阅读笔记_条款2:尽量以const,enum,inline替换#define

1.#define缺点1

#define NUM 1.2

记号NUM可能没有进入记号表,在调试或者错误信息中,无法知道1.2的含义。

改善:通过const int NUM = 1.2;

2.#deine缺点2

无法利用#define创建一个class专属常量,一旦宏被定义,它就在其后的编译过程中有效(除非遇到#undef)。

改善:可以通过const成员变量来满足要求。

3.const成员变量缺点

占用存储空间

改善:通过enum代替

4.对于形似函数的宏,最好改用inline函数替换#define。

原文地址:https://www.cnblogs.com/justkong/p/5034461.html