使用Dev-C ++和xcode编译器输出不同的输出

时间:2013-04-01 06:18:29

标签: c xcode dev-c++

当我编译下面的代码时,它会在不同的环境中提供不同的输出。

int a=4;
a = ++a + ++a;
printf("%d",a);

在Dev-C ++中编译它得到12,而在xcode LLVM编译器中它给出11作为输出。

当我编译以下代码时

int a=4;
a = ++a + ++a + ++a;
printf("%d",a);

它在Dev-C ++中提供19,在xcode LLVM编译器中提供18。

有人能解释一下这个吗?

1 个答案:

答案 0 :(得分:0)

以下代码:

a = ++a + ++a;

a = ++a + ++a + ++a;

都是未定义行为的示例,因此结果取决于编译器,平台等。

请参阅K& R,第2.12节的“C编程语言”