volatile은 두 가지를 의미합니다 -
-
변수 값은 코드를 변경하지 않고도 변경될 수 있습니다. 따라서 컴파일러는 변수의 값을 읽을 때마다 그것이 마지막으로 읽었을 때와 같다거나 그것이 마지막으로 저장된 값과 같다고 가정하지 않을 수 있지만 다시 읽어야 합니다.
-
휘발성 변수에 값을 저장하는 행위는 외부에서 관찰할 수 있는 "부작용"이므로 컴파일러는 값을 저장하는 행위를 제거할 수 없습니다. 예를 들어 두 개의 값이 한 행에 저장되면 컴파일러는 실제로 값을 두 번 저장해야 합니다.
예를 들면:
i = 2; i = i;
컴파일러는 숫자 2를 저장하고 변수 I을 읽고 읽은 변수를 i에 저장해야 합니다.
volatile 키워드에 대한 자세한 내용은 www.geeksforgeeks.org/understanding-volatile-qualifier-in-c/
에서 확인할 수 있습니다.