프로그래밍 언어/C & C++ 정리

volatile

뽀또치즈맛 2023. 10. 29. 11:42

 

volatile 란?

 
 하드웨어에 의해 프로그램에서
수정할 수 있는 개체를 선언하는 데 사용할 수 있는 형식 한정자이다.
 

volatile declarator;

 
일반적으로 volatile은 컴파일러 최적화를 제한하는 용도로 사용한다.
컴파일러는 훌륭하게 최적화하지만, volatile를 사용해서 최적화를 제한해야 하는 상황이 있다.

 

즉, volatile int t 구문은

변수 t의 값은 프로그램을 수행하는 어느 순간에나

외적인 요인에 의해 값이 변할 수 있음을 컴파일러에게 알려 주어,

컴파일러가 변수 t의 값을 사용할 때 주의하도록 만든다.

(주로 하드웨어를 제어하는 프로그램에서 발생하는데,

변수가 특정 하드웨어의 레지스터나 포트를 가리키는 겨웅에 사용한다)

 

특히 volatile로 정의된 변수는 레지스터에 할당되지 않는다.
 
 
참고 블로그 : https://psychoria.tistory.com/592