/Za, /Ze (отключить расширения языка)

Параметр компилятора /Za отключает и выдает ошибки для расширений Майкрософт в C, которые несовместимы с ANSI C89/ISO C90. Нерекомендуемый параметр компилятора /Ze включает расширения Майкрософт. Расширения Microsoft по умолчанию включены.

Синтаксис

/ZA
/Ze

Remarks

Примечание

Использование параметра /Za при компиляции кода в качестве языка C++ не рекомендуется. Параметр /Ze является устаревшим, так как его поведение включено по умолчанию. Список устаревших параметров компилятора см. в разделе устаревшие и удаленные параметры компилятора.

Компилятор Microsoft C/C++ поддерживает компиляцию кода C двумя способами:

  • Компилятор использует режим компиляции C по умолчанию, если исходный файл имеет расширение C или если указан параметр /TC или /TC . Компилятор C является компилятором C89/C90, который по умолчанию включает расширения Майкрософт для языка C. Дополнительные сведения о конкретных расширениях см. в разделе расширения Майкрософт для C и C++. При указании как компиляции C, так и параметра /Za компилятор языка c строго соответствует стандарту C89/C90. Компилятор рассматривает расширенные ключевые слова Майкрософт как простые идентификаторы, отключает другие расширения Майкрософт и автоматически определяет __STDC__ заранее заданный макрос для программ на языке C.

  • Компилятор может компилировать код C в режиме компиляции C++. Это поведение используется по умолчанию для исходных файлов, у которых нет расширения c , а также при указании параметра /TP или /TP . В режиме компиляции C++ компилятор поддерживает такие части стандартов ISO C99 и C11, которые были включены в стандарт C++. Почти весь код на языке C также является допустимым кодом C++. Небольшое количество ключевых слов и конструкций кода на языке C не является допустимым кодом C++ или интерпретируется иначе в C++. В этих случаях компилятор ведет себя в соответствии со стандартом C++. В режиме компиляции C++ параметр /Za может привести к непредвиденному поведению и не рекомендуется.

Другие параметры компилятора могут влиять на то, как компилятор гарантирует соответствие стандартам. Способы указания конкретных стандартных параметров поведения C и C++ см. в разделе параметр компилятора /Zc . Дополнительные параметры соответствия C++ Standard см. в разделе Параметры компилятора /permissive- и /std .

Дополнительные сведения о проблемах соответствия с Visual C++ см. в разделе нестандартное поведение.

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на> страницу свойств языкаC/C++>Language .

  3. Измените свойство Отключить расширения языка .

Установка данного параметра компилятора программным способом

См. раздел DisableLanguageExtensions.

См. также

Параметры компилятора
/Zc (соответствие)
/permissive- (соответствие стандартам)
/STD (Указание версии стандарта Language Standard)