gpt4 book ai didi

c - C语言中的答案有歧义

转载 作者:行者123 更新时间:2023-11-30 18:59:30 25 4
gpt4 key购买 nike

Possible Duplicate:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)

我听说printf函数是从右到左执行,从左到右打印。根据该约定,以下程序应给出 7,6,5。但它在我的 linux gcc 编译器上给出了 7,7,7。它依赖于编译器吗?

int i=5;
printf("%d %d %d\n",++i,++i,i);

另外,我们可以使用cdecl/pascal关键字来改变printf的执行顺序吗?如果是,我们该怎么做?我一直在尝试这样做,但没有成功。提前致谢!

最佳答案

代码中的求值顺序未定义,因为没有序列点。您不能依赖函数参数的求值顺序,也不能更改它。

检查http://www2.research.att.com/~bs/bs_faq2.html#evaluation-order

关于c - C语言中的答案有歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10689608/

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