基于额外的括号,下面两个 return 语句之间的表达式求值有什么区别吗?
return a++ *(-b+123.456)/999.12344;
对比
return (a++ *(-b+123.456)/999.12344);
编程语言 C++ 标准 CPP 98'ish(C++11 之前)
希望问题很清楚。期望是完整地评估表达式。
最佳答案
Sloppy speaking x
与 (x)
相同(请参阅 this answer 以获得“严格的讲话”答案;)。在完整表达式周围添加括号不会改变 operator precedence 的任何内容。
PS:对返回值优化有模糊影响(详见this answer)。不过,它绝对不会影响返回的值。
关于C++ "return"表达式的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256135/