violatile 키워드

TraceofLight·2025년 7월 28일
0

TIL

목록 보기
7/8
post-thumbnail

외부 참고


위키 백과에서는 이렇다고 한다

기록

static int foo;

void bar(void)
{
    foo = 0;

    while (foo != 255);
}

이렇게 작성된 내용을

void bar_optimized(void)
{
    foo = 0;

    while (true);
}

컴파일러는 이렇게 최적화를 한다는 것

하지만 foo라는 값이 인터럽트 혹은 다른 스레드의 접근으로 인하여 값이 변경될 수 있는 것을 배제한 컴파일러의 행위로 인해, 여지가 사라지게 된 것이다.

따라서 Violatile로 선언된 변수는 컴파일러에게 해당 값이 언제나 변할 수 있다고 여지를 주어, 최적화를 하지 않도록 만들어준다.

시스템 개발을 하면서 봤던 변수인데 까먹어서 기록해 둔다

profile
24시간은 부족한 게 맞다

0개의 댓글