컴파일러가 최적화를 하면, 중복되는 값을 스스로 판단해서 위의 그림처럼 진행한다.
그래서 최적화가 없어야 하는 변수에는 volatile 이라는 한정자를 지정하게 된다.
volatile 은 영어 뜻이 '휘발성이 있는' 이라는 뜻인데, 값이 날아가기 때문에 다시 읽어들여야한다.
즉 변수에 volatile 을 붙이면 아래의 그림처럼 그 데이터가 최적화를 하지 않게 된다.
volatile = '최적화를 하지 말아라'
그 반대로 사용하는 한정자는
restrict = ' 최적화를 해라'
http://lunakimvision.blogspot.com/2016/11/volatile.html
(volatile 사용 이유)
http://heurinbada.tistory.com/25
참고 사이트
반응형
'잡다한 IT > 참고용' 카테고리의 다른 글
쉘 스크립트 공부 사이트 (0) | 2018.07.19 |
---|---|
컴파일 과정 (0) | 2018.07.10 |
C와 C++ 구조체, 클래스 (0) | 2018.06.20 |
new 와 malloc 의 차이점 (0) | 2018.06.19 |
함수 포인터를 사용하는 이유? (0) | 2018.06.18 |