volatile

정원준·2023년 4월 25일
0

Hardware

목록 보기
3/5

volatile 키워드

  • MCU 프로그래밍시 같은 주소에 여러번 수정이 빈번하다 => 컴파일러가 최적화(중간생략) 해줌

    • 인터럽트 핸들러 사용시
      • 메모리 주소를 가진 I/O 레지스터
    • 인터럽트 핸들러가 값을 변경하는 전역변수!
    • 멀티 쓰레드 환경시
    • 최적화 오류발생 가능성이 있는 변수에 사용
  • volatile사용시 해당변수는 최적화에서 제외하고 레지스터 로드값이 아닌 항상 메모리에 접근, 참조하도록 함.
    c <syntax> volatile [type][variable_name];

    즉 현재 프로그램의 수행흐름과 상관없이 외부 요인이 변수 값을 변경할 수 있다는 점에서 공유되는 변수의 경우에만 필요에 따라 volatile 사용하면 됨!

profile
만리전정

0개의 댓글