volatile 란?
하드웨어에 의해 프로그램에서
수정할 수 있는 개체를 선언하는 데 사용할 수 있는 형식 한정자이다.
volatile declarator;
일반적으로 volatile은 컴파일러 최적화를 제한하는 용도로 사용한다.
컴파일러는 훌륭하게 최적화하지만, volatile를 사용해서 최적화를 제한해야 하는 상황이 있다.
즉, volatile int t 구문은
변수 t의 값은 프로그램을 수행하는 어느 순간에나
외적인 요인에 의해 값이 변할 수 있음을 컴파일러에게 알려 주어,
컴파일러가 변수 t의 값을 사용할 때 주의하도록 만든다.
(주로 하드웨어를 제어하는 프로그램에서 발생하는데,
변수가 특정 하드웨어의 레지스터나 포트를 가리키는 겨웅에 사용한다)
특히 volatile로 정의된 변수는 레지스터에 할당되지 않는다.
참고 블로그 : https://psychoria.tistory.com/592
'프로그래밍 언어 > C & C++ 정리' 카테고리의 다른 글
<memory> smart pointer (0) | 2023.10.29 |
---|---|
const 및 volatile 포인터 (0) | 2023.10.29 |
포인터 (0) | 2023.10.28 |
부동소수점 (0) | 2023.06.20 |
포인터 & 함수 포인터 & 깊은 복사 & 얕은 복사 & 생성자 & 오버로딩 & explicit & 형변환 연산자 & R-value , L-value (0) | 2023.06.12 |