다음을 통해 공유


/volatile(volatile 키워드 해석)

volatile 키워드를 해석하는 방법을 지정합니다.

구문

/volatile:{iso|ms}

인수

/volatile:iso
ISO 표준 C++ 언어로 정의된 엄격한 volatile 의미 체계를 선택합니다. 획득/해제 의미 체계는 휘발성 액세스에서 보장되지 않습니다. 컴파일러가 ARM을 대상으로 하는 경우(ARM64EC 제외) 기본 해석 volatile입니다.

/volatile:ms
ISO 표준 C++ 언어를 초과하는 메모리 순서 보장을 추가하는 Microsoft 확장 volatile 의미 체계를 선택합니다. 획득/해제 의미 체계는 휘발성 액세스에서 보장됩니다. 그러나 이 옵션은 컴파일러가 하드웨어 메모리 장벽을 생성하도록 강제하여 ARM 및 기타 약한 메모리 순서 아키텍처에 상당한 오버헤드를 추가할 수 있습니다. 컴파일러가 ARM64EC 또는 ARM이 아닌 플랫폼을 대상으로 하는 경우 이는 기본 해석 volatile입니다.

설명

스레드 간에 공유되는 메모리를 처리할 때 명시적 동기화 기본 형식 및 컴파일러 내장 함수와 함께 /volatile:iso를 사용하는 것이 좋습니다. 자세한 내용은 volatile를 참조하세요.

기존 코드를 포팅하거나 프로젝트 중간에 이 옵션을 변경하는 경우 의미 체계 차이의 영향을 받는 코드 위치를 식별하도록 경고 C4746 을 사용하도록 설정하는 것이 유용할 수 있습니다.

이 옵션을 제어하는 것과 동일한 항목은 없습니다 #pragma .

Visual Studio에서 /volatile 컴파일러 옵션을 설정하려면

  1. 프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 컴파일러 및 빌드 속성 설정을 참조합니다.

  2. 구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.

  3. 추가 옵션 상자에서 /volatile:iso 또는 /volatile:ms를 추가한 다음 확인 또는 적용을 선택하여 변경 내용을 저장합니다.

참고 항목

volatile
MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문