Take the following printf code:

Code:
printf("%f %f %d",x(),y(),z());
Why would printf print the y() value first and the x() value second I listed them in the correct order? Is this a bug in gcc?