我读到 Fortran 对表达式的计算顺序有严格的规定。对于一些数值算法,这是非常重要的。
数值 C 程序如何控制浮点运算的顺序并防止编译器“优化”为不合需要的运算顺序,例如更改(a*b)*c
为a*(b*c)
.
我读到 Fortran 对表达式的计算顺序有严格的规定。对于一些数值算法,这是非常重要的。
数值 C 程序如何控制浮点运算的顺序并防止编译器“优化”为不合需要的运算顺序,例如更改(a*b)*c
为a*(b*c)
.
我相信它不会优化代码,因为这可能会导致不良结果。它通常做的是取数值表达式中缀表示法,然后通过根据不同运算符的优先级应用堆栈操作将其转换为后缀。
这样做是为了优化代码,但通过省略所有括号然后根据优先级重新排列来简单地增加代码的可读性。
.
优先顺序
使用括号确保执行顺序。