>>580
よぉーくみてみれ。

volatile int * p;
int * volatile p;

上記ふたつは別物だ。
>>573のプログラムが最適化かかってwhile(1)になるのは当たり前。
だってvolatile指定は「されてない」んだからな。