中文
[有效 C++] 项目 02

[有效 C++] 项目 02

要写 #define,就要想到 const、枚举和内联。

优先选择 Const、枚举和 Inline,而不是 #define

  • 表示编译器优于预处理

#define FOO 1.024

  • 上述情况是预处理器在编译前替换字符串。

  • 上述符号 FOO 可以在编译器不知道其存在的情况下被移除,因此它可能在错误中作为常量出现,所以如果存在与此相关的 bug,追查起来会很费时间。

const double FOO = 1.024;

  • 解决方法是用常量替换宏。

  • 编译器可以清楚地观察到常量,也可以清楚地在符号表中输入常量。此外,如果通过预处理器进行批量替换,可能会创建多个对象副本,但如果是常量,创建的副本不会超过一个。

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0