gpt4 book ai didi

c - 左值和函数结果——依赖?

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:47 25 4
gpt4 key购买 nike

考虑以下片段:

int func(char *ptr);
...
n += func(p + n);

这段代码是否会产生未定义的行为,因为函数的参数取决于左值?我假设编译器会计算函数的结果,然后递增 p + n,或者这可能是特定于编译器的?

最佳答案

在函数调用的函数enter之前有一个sequence point。这意味着每个值计算和与参数相关的副作用都在函数调用中进入函数之前完成。

C11-§6.5.2.2/10:

There is a sequence point after the evaluations of the function designator and the actual arguments but before the actual call.

所以,如果是

n += func(p + n);  

p + n 将在函数调用之前计算。

关于c - 左值和函数结果——依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860891/

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