gpt4 book ai didi

c++ - 操作数的评估顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:01 27 4
gpt4 key购买 nike

在表达式 a + b 中,a 是否保证在 b 之前求值,还是未指定求值顺序?我认为是后者,但我很难在标准中找到明确的答案。

因为我不知道 C 处理这个问题的方式是否与 C++ 不同,或者评估顺序规则是否在 C++11 中得到了简化,所以我将把这个问题标记为所有这三个问题。

最佳答案

在C++中,对于用户自定义类型a + b是一个函数调用,标准是这样说的:

§5.2.2.8 - [...] The order of evaluation of function arguments is unspecified. [...]

对于普通运算符(operator),标准说:

§5.4 - Except where noted, the order of evaluation of operands of individual operators and subexpressions of individual expressions, and the order in which side effects take place, is unspecified. [...]

这些在 C++11 中没有改变。然而,第二个中的措辞发生了变化,表示顺序是“未排序”而不是未指定,但本质上是相同的。

我没有 C 标准的拷贝,但我想那里也一样。

关于c++ - 操作数的评估顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com