Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C의 "휘발성" 한정자

<시간/>

여기서 우리는 C++에서 volatile 한정자의 의미가 무엇인지 볼 것입니다. volatile 한정자는 변수를 선언할 때 변수에 적용됩니다. 컴파일러에게 값이 언제든지 변경될 수 있음을 알리는 데 사용됩니다. 다음은 volatile의 일부 속성입니다.

  • 휘발성 키워드는 메모리 할당을 제거할 수 없습니다.
  • 레지스터의 변수를 캐시할 수 없습니다.
  • 할당 순서대로 값을 변경할 수 없습니다.

volatile 키워드를 사용하는 방법을 살펴보겠습니다.

volatile int a;
int volatile a;

여기서 이 두 선언은 정확합니다. 다른 데이터 유형과 마찬가지로 휘발성 포인터, 구조, 공용체 등을 사용할 수 있습니다. 휘발성 구조 및 공용체는 자체적으로 휘발성일 수 있으며 해당 멤버 변수도 휘발성 유형일 수 있습니다.

휘발성은 다른 장소에서 사용됩니다. 메모리 매핑된 주변 장치 레지스터의 경우 일부 다른 기능이나 인터럽트 서비스 루틴에 의해 액세스되는 일부 전역 변수 또는 일부 다중 스레드 응용 프로그램에서 휘발성을 사용할 수 있습니다.

예시

int main (){
   int value;
   value++;
}i
nt main (){
   volatile int value;
   value++;
}

두 개의 코드 블록이 있습니다. 첫 번째 블록에는 volatile 키워드가 없습니다. 따라서 첫 번째 경우 변수가 메모리에서 CPU 레지스터로 복사된 다음 작업이 수행됩니다. 두 번째 경우에는 휘발성이 있습니다. 따라서 이 경우 변수는 메모리에서 레지스터로 복사되지 않습니다.