我在许多C++代码库中看到了一种通用模式:
Header.h:
static const int myConstant = 1;
Source1.cpp:
#include "Header.h"
Source2.cpp:
#include "Header.h"
基于:
...
...
myConstant
仅可从同一翻译单元访问,并且编译器将生成它的多个实例,每个包含Header.h
的翻译单元一个。我的理解正确吗-创建了
myConstant
的多个实例?如果是这种情况,可以请我指出在C++中使用常量的更好的选择编辑:
有人建议在 header 中创建
myConstant
extern
并将其定义在一个cpp
文件中。这是一个好习惯吗?我猜测,这将使编译器看不到该值并阻止许多优化,例如,当该值出现在算术运算中时。 最佳答案
你在做什么应该没问题。只要您从不使用变量的地址(例如&myConstant
),优化器可能会避免为常量创建任何存储,而是将其替换为该值。
关于c++ - 如何在C++中正确定义常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45160517/