This question already has answers here:
What belongs in an educational tool to demonstrate the unwarranted assumptions people make in C/C++?

(23个答案)


5年前关闭。




我有一个使用g++构建的应用程序。我在编译标志中添加了-Wall以清除任何问题;未使用的变量,在引用之前使用的变量,比较带符号/无符号值等。

问题是,我收到数百行垃圾评论,其中包括:
remark #981: operands are evaluated in unspecified order
这句话到底是什么意思?以及如何摆脱它,以便看到有值(value)的警告/备注?

谢谢您的帮助!

最佳答案

实际上,它在标准中未指定,但应与系统编程保持一致。一些编译器(在评估前使用波兰表示法转换)使用优先级,一些编译器(在评估前使用树转换)以严格的从右到左顺序对其进行评估。

关于c++ - C++备注:操作数以未指定的顺序求值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5873521/

10-08 22:30