为什么 gcc -O1 会影响 std::rint()?

问题描述 投票:0回答:1

为什么以下代码在使用

-1
编译时会产生
g++ -O1
?我的gcc版本是13.2.1.

#include <iostream>
#include <cmath>
#include <cfenv>

using namespace std;

int main() {
    fesetround(FE_DOWNWARD);
    cout << rint(-1.6) << endl;
    return 0;
}
c++ gcc floating-point rounding
1个回答
0
投票

对于 GCC,如果您的程序

可能动态更改 FP 舍入模式,或者可能以非默认舍入模式执行,则应使用 
-frounding-math 编译您的程序

© www.soinside.com 2019 - 2024. All rights reserved.