相关疑难解决方法(0)

未定义的行为和序列点

什么是"序列点"?

未定义的行为和序列点之间的关系是什么?

我经常使用有趣和复杂的表达方式a[++i] = i;,让自己感觉更好.我为什么要停止使用它们?

如果您已阅读此内容,请务必访问后续问题重新加载未定义的行为和序列点.

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ c++-faq undefined-behavior sequence-points

970
推荐指数
4
解决办法
10万
查看次数

C++函数参数中的评估顺序

如果我们有这样的三个函数(foo,bar和baz)......

foo(bar(), baz())
Run Code Online (Sandbox Code Playgroud)

C++标准是否保证在baz之前评估条形码?

c++ standards

83
推荐指数
4
解决办法
2万
查看次数

C++中编译器和评估的参数顺序

好吧,我知道标准规定C++实现可以选择评估函数的哪个顺序参数,但是在实际影响程序的情况下是否有任何实现"利用"它的实现?

经典示例:

int i = 0;
foo(i++, i++);
Run Code Online (Sandbox Code Playgroud)

注意:我不是在找人告诉我评估的顺序不能依赖,我很清楚这一点.我只对任何编译器是否真的按照从左到右的顺序进行评估感兴趣,因为我的猜测是,如果他们做了很多写得不好的代码就会破坏(这是正确的,但他们仍然可能会抱怨).

c++ operator-precedence

59
推荐指数
4
解决办法
2万
查看次数