我正在使用gcc 8.3.0并启用了-ffast-math的以下代码来进行x86交叉编译:
#include <cmath>
double diff_double(double in)
{
auto tmp = 10 * std::log10(1. * 15e3);
return tmp - (10 * std::log10(1. * in));
}
int main()
{
return diff_double(15e3) == 0.;
}
Run Code Online (Sandbox Code Playgroud)
在执行时,我得到的返回值为0,因为针对“ tmp”的编译器优化结果与运行时结果不同。
这是有效的行为吗?
Godbold:https://godbolt.org/z/g2sev7
谢谢你的帮助
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |