gpt4 book ai didi

常量的 C++ 最佳实践

转载 作者:IT老高 更新时间:2023-10-28 21:40:51 24 4
gpt4 key购买 nike

我有一大堆常量,我想在代码的不同部分访问它们,但我希望能够轻松访问它们:

static const bool doX = true;
static const bool doY = false;
static const int maxNumX = 5;

等等。

所以我创建了一个名为“constants.h”的文件,并将它们全部粘贴在那里,并将其#included 到任何需要知道常量的文件中。

问题是,这对于编译时间来说很糟糕,因为每次我更改一个常量时,都必须重建 constants.h 引用的所有文件。 (另外,据我了解,因为它们是静态的,所以每次我在新的 .cpp 中包含 constants.h 时,我都会在代码中生成一份 doX/doY/maxNumX 的拷贝,从而导致编译后的千字节浪费空间EXE——有什么办法可以看到吗?)。

所以,我想要一个解决方案。如果可能的话,不是“仅在使用它们的文件中声明常量”。

有什么建议吗?

最佳答案

唯一的选择是让你的常量 extern 并在另一个 .cpp 文件中定义它们,但是你会失去优化的潜力,因为编译器不会在编译每个 .cpp` 时知道它们有什么值(value)。

顺便说一句,不要担心大小增加:对于整数类型,您的常量可能会直接内联到生成的机器代码中。

最后,static 不是必需的,因为默认情况下,const 全局变量在 C++ 中是 static

关于常量的 C++ 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9649405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com