○マルチスレッドや割り込みなどでの最適化の抑制

■ 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("*");
	}
}



▲トップページ > Windows と C++