○マルチスレッドや割り込みなどでの最適化の抑制 ■ i の値が割り込みやスレッドにより変更されたときにループを抜けるプログラム int i = 0; void Thread(){ while(i==0){ printf("*"); } } △この場合だとコンパイラによって、while文が while(1){ printf("*"); } のように最適化される恐れがあるため、変数 i の最適化を抑制する必要がある。 volatile int i = 0;//この変数の最適化を抑制 void Thread(){ while(i==0){ printf("*"); } }