/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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Выберите страницу свойствC/C++>Languageсвойства> конфигурации.
Измените свойство Отключить расширения языка .
Установка данного параметра компилятора программным способом
См. раздел DisableLanguageExtensions.
См. также
Параметры компилятора
/Zc (соответствие)
/permissive- (соответствие стандартам)
/std (указание стандартной версии языка)