控制C代码中的操作顺序

时间:2014-01-16 07:53:32

标签: c fortran numerical-computing

我读到Fortran对表达式的计算顺序有严格的规定。对于某些数值算法,这非常重要。

数字C程序如何控制浮点运算的顺序,并防止编译器“优化”到不合需要的操作顺序,例如将(a*b)*c更改为a*(b*c)

2 个答案:

答案 0 :(得分:0)

使用括号可确保执行顺序。

答案 1 :(得分:0)

我认为它不会优化代码,因为这可能会导致不良结果。它通常做的是采用数值表达式中缀符号,然后通过基于不同运算符的优先级应用堆栈操作将其转换为后缀。
这样做是为了优化代码,但是通过省略所有括号然后根据优先级重新排列来简单地增加代码的可读性。 priority order