c++ - 在 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++。
解决方案
推荐阅读
- python - 将 1 分钟间隔内的最后一个值分配给 pandas DataFrame 的行
- r - 将 xml 解析为数据框,包括 R 中的子项和属性
- javascript - JavaScript 代码在浏览器中未按预期工作
- sql - 为什么 $P!{} 在 JasperServer 上不能正常工作?
- vuejs2 - 如何为 VueJS Mixin 制作可重用的模板
- python - 如何使用 Plotly 为图形设置通用字体?
- java - 数组中第 K 个最大的元素 - LeetCode 问题
- python - 如何连接具有空白条件的某些列
- ruby-on-rails - 如何在 Rails 6 中使用自定义 jQuery
- assembly - 如何使用 PIC16F877A 比较一个值是否在多个范围之一内