○マルチスレッドや割り込みなどでの最適化の抑制
■ 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("*");
}
}