c++ - 'const' 变量是否默认在 C++ 中预先计算?

标签 c++

假设我有像这样的位置变量

const float latitude = 51.+11./60.+33.0461/3600.;
const float longitude = 12.+50./60.+31.9369/3600.;

并在程序中经常使用它们。编译器会预先计算吗? (这个例子应该不会产生太多的开销,但你明白了。)

指出位置的奖励积分。 ;)

TIA

最佳答案

我认为编译器通常不需要计算算术常量表达式的结果。

编译器,但是,需要计算整数常量表达式的结果(基本上,常量表达式仅由整数和其他值转换为整数组成)在需要结果的情况下——也就是说,当整数常量表达式用作数组大小、case 表达式、枚举值等时。

然而,如果任何现代编译器不计算常量表达式的结果,我会感到惊讶。

关于c++ - 'const' 变量是否默认在 C++ 中预先计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2921864/

相关文章:

c++ - 试图了解C++ 14(N4140)中的[basic.def.odr]/2

c++ - 插件和基类构造函数

c++ - 在 C 中更改 Windows 目录中的文件顺序

java - 在 java 中将两个字节(一个正数和另一个负数)组合成 short

c++ - 如何使用 Apache Thrift 在单个 catch 语句中捕获所有自定义异常?

c++ - 不必要命名空间的编译器警告

c++ - 读取一系列单词以将它们添加到 vector 中

c++ - 结构的初始序列是什么?

c++ - RTTI 被认为是糟糕设计的原因是什么?

c++ - 奇怪的Qt include OSX下的目录结构