Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查C+中单行表达式执行顺序的一种方法+;通过调试 P>是否有一种方法来检查一行表达式的执行顺序,其中包含C++中的几个小子表达式,在调试程序的帮助下?_C++ - Fatal编程技术网

检查C+中单行表达式执行顺序的一种方法+;通过调试 P>是否有一种方法来检查一行表达式的执行顺序,其中包含C++中的几个小子表达式,在调试程序的帮助下?

检查C+中单行表达式执行顺序的一种方法+;通过调试 P>是否有一种方法来检查一行表达式的执行顺序,其中包含C++中的几个小子表达式,在调试程序的帮助下?,c++,C++,例如: 如果(a!=6 | | b!=5) 我能找出先执行的是什么吗a=6或b=5通过观察调试器的操作,如果所有子表达式都在一行代码中,我该怎么做 提前感谢。如Richard Criten所述,您可以使用在线编译器资源管理器。例如,Godbolt可以为您提供以下信息: 所以你可以看到a!=6首先被选中,并且b!=仅当第一个条件失败时,才会选中5。=?我想你的意思是=

例如:
如果(a!=6 | | b!=5)

我能找出先执行的是什么吗
a=6
b=5
通过观察调试器的操作,如果所有子表达式都在一行代码中,我该怎么做


提前感谢。

如Richard Criten所述,您可以使用在线编译器资源管理器。例如,Godbolt可以为您提供以下信息:


所以你可以看到
a!=6
首先被选中,并且
b!=仅当第一个条件失败时,才会选中5。

=?我想你的意思是
==
=2)
a!=6
先到,
b!=5执行时排在第二位。这里没有
6 | | b
表达式。非优化构建的执行顺序定义得很好,但优化后可能会发生剧烈变化。尝试调试优化的构建可能会令人沮丧。我建议您在IDE中或使用一个在线编译器探索器检查优化构建的生成汇编程序。请注意,编译器可能已经完全优化了您对变量(甚至整个表达式)的看法。在这种情况下,请检查运算符优先级规则。它们非常明确。添加
-O2
并检查生成的代码。这是一个全新的世界。@RichardCriten可能是一个更好的例子,即使是在更高的
-O