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

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

Синтаксис

/Za
/Ze

Комментарии

Примечание

Не рекомендуется использовать /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++ см. в разделе Параметры компилятора /permissive- и /std .

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

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

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

  2. Выберите страницу свойствC/C++>Languageсвойства> конфигурации.

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

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

См. раздел DisableLanguageExtensions.

См. также

Параметры компилятора
/Zc (соответствие)
/permissive- (соответствие стандартам)
/std (указание стандартной версии языка)