假设我有像这样的位置变量
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/