volatile, 그냥 외우면 오히려 위험합니다.
실제로 volatile은 “안전하게 만들어주는 키워드”가 아니라 컴파일러 최적화와 하드웨어 접근 사이에서 의미가 생깁니다.
같은 변수라도 ISR, DMA, 하드웨어 레지스터처럼 CPU 밖에서 값이 바뀌는 경우에는 main 코드가 변화를 놓칠 수 있습니다.
volatile을 처음 정리하는 분들은 “값이 코드 밖에서 바뀔 수 있는가”부터 보시면 좋습니다.
아래 노트 이미지를 순서대로 보시면 됩니다.
이미지 노트로 보기
1 / 10









