컴파일러
-
[volatile] 컴파일러! 나대지 마라개발/C·C++ 2021. 4. 27. 17:15
int some_int = 100; while(some_int == 100) { //your code } 이 프로그램이 컴파일될 때 some_int 변수가 절대 바뀔 수 없다고 판단되면 최적화가 일어납니다. 그 최적화는 while(true)라는 형태입니다. 최적화를 하지 않으면 반복문이 돌 때마다 some_int의 값을 불러와서, 100과 비교를 해야 하기 때문에 조금 느려질 수밖에 없습니다. 하지만 가끔씩, 최적화가 필요하지 않을 때도 있습니다. 컴파일러가 알지 못하는, 프로그램 외부의 누군가가 some_int를 바꾸게 되는 경우입니다. 이런 케이스에서는 컴파일러 최적화가 가치 있는 결과물을 만들어내지 못합니다. 때문에 컴파일러 최적화를 막고 싶다면 volatile 키워드를 사용합니다. volatile..