C++尽量以const,enum,inline替换#define

最好编译器替换预处理器

以const替换#define

#define ASPECT_RATIO 1.653

替换为:

const double AspectRatio = 1.653

•调试的需要:#define的记号会被预处理器移走,记号名称可能没进入记号表内。因此当#define的宏名称获得一个编译错误时,会引起困惑,浪费大量时间追踪错误。而AspectRatio肯定会被编译器看到
•更小的代码量:对浮点数而言,使用常量可能比使用#define导致较小量的代码,因为预处理器“盲目地将ASPECT_RATIO替换为1.653”可能导致目标码出现多份1.653
但是,以常量替换#define时要注意:
•定义常量指针时:由于常量定义式通常被定义在头文件内,因此有必要将指针声明为const。如: const char* const authorName = “Scott Meyers”;
class专属常量:class专属常量需

上一篇:枚举类基本教程


下一篇:mysql基础(10)_列类型之字符串型【二】_text、enum