基于编译器(gcc和turboC)的结果不同的原因
可能重复:基于编译器(gcc和turboC)的结果不同的原因,c,undefined-behavior,C,Undefined Behavior,可能重复: 在TURBO C中: 7 6 8 7 6 6 未指定参数的求值顺序。编译器可以自由地以他们选择的任何方式实现它。这样的代码将是脆弱和不可靠的 因为函数参数的求值顺序是未指定的,并且可能因编译器而异。编译可以从以下位置计算函数参数: 从左到右或 从右向左或 以任何其他模式 C标准未规定此顺序 参考: C99标准6.5 运算符和操作数的分组由语法.72表示,除非稍后指定(对于函数调用()、&&、| |、?:、和逗号运算符),否则子表达式的求值顺序和副作用发生的顺序均未指定 7 6
在TURBO C中:
7 6 8
7 6 6
未指定参数的求值顺序。编译器可以自由地以他们选择的任何方式实现它。这样的代码将是脆弱和不可靠的 因为函数参数的求值顺序是未指定的,并且可能因编译器而异。编译可以从以下位置计算函数参数:
从左到右或
从右向左或
以任何其他模式 C标准未规定此顺序 参考: C99标准6.5 运算符和操作数的分组由语法.72表示,除非稍后指定(对于函数调用()、&&、| |、?:、和逗号运算符),否则子表达式的求值顺序和副作用发生的顺序均未指定
7 6 6