首页 > 解决方案 > 在 C++ 中定义跨多个文件共享的全局常量的最佳方法

问题描述

我想定义几个将在多个 .cpp 文件中使用的全局常量值。在编译时知道这些值并不是必须的。

一种选择是定义,例如const double some_constant =4.1;在头文件中,并将其包含在我的各种 .cpp 文件中。(这似乎是最自然的选择,但我是一个完整的初学者。)

另一种选择是放入extern const double some_constant;头文件并将其设置为const double some_constant=4.1;单独的 .cpp 文件,然后像以前一样包含头文件。(我听说这可以让编译器做出更好的优化,但我不明白为什么。)

或者,正如对这篇文章的回答中提到的,第三种可能性是定义

constexpr double some_constant {4.1};

这些选项在性能/允许编译器进行最佳优化方面实际上有什么区别吗?如果相关,我正在使用带有 -O3 标志的 g++。

标签: c++

解决方案


推荐阅读