Поделиться через


/volatile (интерпретация ключевого слова volatile)

Задает способ интерпретации ключевого слова volatile.

/volatile:{iso|ms}

Аргументы

  • /volatile:iso
    Выделяет строгую семантику volatile, как определено стандартным языком С++ для ISO-образов. Семантика получения и освобождения не гарантируется при переменном обращении. Если компилятор нацелен на ARM, это интерпретация volatile по умолчанию.

  • /volatile:ms
    Выделяет расширенную семантику volatile Microsoft, которая добавляет гарантии упорядочения памяти за пределами стандартного языка С++ для ISO-образов. Семантика получения и освобождения гарантируется при переменном обращении. Однако этот параметр также заставляет компилятор генерировать барьеры памяти оборудования, которые могут добавлять значительную нагрузку на ARM и другие архитектуры со слабым упорядочиванием памяти. Если компилятор нацелен на какую-либо платформу, кроме ARM, это интерпретация volatile по умолчанию.

Заметки

Настоятельно рекомендуется использовать /volatile:iso вместе с явными примитивами синхронизации и встроенными компилятора при работе с памятью, используется отладкой потоков. Для получения дополнительной информации см. volatile (C++).

Если перенести существующий код или изменить этот параметр посередине проекта, возможно, имеет смысл включить предупреждение C4746, чтобы определить расположения кода, затронутые отличиями в семантике.

Значение #pragma эквивалентно элементу управления этот параметр.

Задание параметра компилятора /volatile в Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Для получения дополнительной информации см. Открытие свойств страниц проекта.

  2. Выберите папку C/C++.

  3. Выберите страницу свойств Командная строка.

  4. В поле Дополнительные параметры добавьте /volatile: ISO или /volatile: отсутствуют.

См. также

Ссылки

volatile (C++)

Параметры компилятора

Настройка параметров компилятора