gpt4 book ai didi

c++ - 在 C++ 中定义全局常量

转载 作者:IT老高 更新时间:2023-10-28 12:06:37 31 4
gpt4 key购买 nike

我想在 C++ 中定义一个常量,使其在多个源文件中可见。我可以想象以下在头文件中定义它的方法:

  1. #define GLOBAL_CONST_VAR 0xFF
  2. int GLOBAL_CONST_VAR = 0xFF;
  3. 一些返回值的函数(例如 int get_GLOBAL_CONST_VAR())
  4. 枚举 { GLOBAL_CONST_VAR = 0xFF; }
  5. const int GLOBAL_CONST_VAR = 0xFF;
  6. extern const int GLOBAL_CONST_VAR;并在一个源文件中 const int GLOBAL_CONST_VAR = 0xFF;

选项 (1) - 绝对不是您想要使用的选项

选项(2)-使用头文件在每个目标文件中定义变量的实例

选项 (3) - IMO 在大多数情况下过度杀戮

选项 (4) - 在许多情况下可能不好,因为枚举没有具体类型(C++0X 将增加定义类型的可能性)

所以在大多数情况下,我需要在 (5) 和 (6) 之间进行选择。我的问题:

  1. 您更喜欢 (5) 还是 (6)?
  2. 为什么 (5) 可以,而 (2) 不行?

最佳答案

绝对选择选项 5 - 它是类型安全的,并允许编译器优化(不要获取该变量的地址 :) 此外,如果它位于 header 中 - 将其粘贴到命名空间以避免污染全局范围:

// header.hpp
namespace constants
{
const int GLOBAL_CONST_VAR = 0xFF;
// ... other related constants

} // namespace constants

// source.cpp - use it
#include <header.hpp>
int value = constants::GLOBAL_CONST_VAR;

关于c++ - 在 C++ 中定义全局常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2268749/

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