Just to add some experiences.
The following code:
int i=1;
printf("%d %d %d\n", i++, i++, i);
results in
2 1 3
- using g++ 4.2.1 on Linux.i686
1 2 3
- using SunStudio C++ 5.9 on Linux.i686
2 1 3
- using g++ 4.2.1 on SunOS.x86pc
1 2 3
- using SunStudio C++ 5.9 on SunOS.x86pc
1 2 3
- using g++ 4.2.1 on SunOS.sun4u
1 2 3
- using SunStudio C++ 5.9 on SunOS.sun4u