Can someone explain why this code outputs 7 ? (Is this a gcc bug?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following code gives 7 when compiled with gcc.

I think, the value of the three phase "++i" should be 1, 2, 3, although 
the order may be different. So, the sum of them should be 6.

 I have confirmed that it gives 6 when compiled with clang.

I know that a program having common sense  will not write code like this,
 but I still can not understand this behavior of gcc.

/******************************************/
#include <stdio.h>
int main()
 {
  int i = 0;
  printf("%d\n", (++i) + (++i) + (++i));
  return 0;
} 





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux