c++ - 未定义/未指定?

标签 c++ c

<分区>

Possible Duplicate:
Why is i = ++i + 1 unspecified behavior?

考虑以下片段:

int i=10;
printf("%d %d %d",i,++i,i--);

函数参数的计算顺序在 C/C++ 中未指定。因此会导致未指定的行为。

我是正确的还是遗漏了什么?请解释。

编辑:好吧,一些成员认为它是重复的,这是一个未定义的行为。无论如何,来自 C99:

6.5.2.2(10)

函数指示符的求值顺序,实际参数,以及 实际参数中的子表达式未指定,但在实际调用之前有一个序列点。

那么现在确切的命名法是什么,UndefinedUnspecified

最佳答案

是的,没错。

我认为这是因为在不同的平台上使用不同的机制来传递参数,因此参数的计算顺序可能不同。

关于c++ - 未定义/未指定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1930734/

相关文章:

c++ - 为什么 C 字 rune 字是整数而不是字符?

c - 为什么 GCC 不在文件末尾生成任何关于换行符的警告?

c - 程序要求用户输入数字 n,并让用户可以在计算总和和计算 n 的阶乘之间进行选择

c++ - 创建远程线程会使进程崩溃

c# - Visual Studio - 平台

c++ - set::emplace 如何处理集合中已有的对象?

c - 有没有来自标准输入的东西?

c - 组播监听和接口(interface)IP地址变化

c++ - 如何将值附加到命令行参数数组?

java - 在函数中将多个字符串从 c 传递到 java(jni)