> Eugene, > > This code is completely correct as far as I can see. The second while is > interpreted as a new while loop, and the closing; is short for {} in > this case. I've expanded the code into a more intuitive form here: > > int main() > { > int a = 0; > > while (a == 0) { > a = 1; > } > > while (1) > /* Do nothing */ ; > > return 0; > } The issue is a rather pedantic one. Should an error be generated by the compiler indicating that 'return 0' can never be reached?
c.