Конфигурация компилятора: Расширения компилятора

  Юрий  | 

  |

  Обновл. 15 Сен 2021  | 

 37386

 ǀ   6 

На этом уроке мы поговорим о том, что такое расширения компилятора, полезны ли они и как их выключить.

Расширения компилятора

Стандарт языка C++ определяет правила поведения программ при определенных обстоятельствах. И в большинстве случаев компиляторы также будут следовать этим правилам. Однако многие компиляторы вносят свои собственные изменения в язык программирования, часто для улучшения совместимости с другими версиями языка (например, C99), или по историческим причинам. Эти специфичные для компилятора варианты поведения называются расширениями компилятора.

Используя расширения компилятора, вы получаете возможность писать программы, несовместимые со стандартом языка C++. Программы, использующие нестандартные расширения, обычно не компилируются другими компиляторами (которые не поддерживают эти же расширения), или вообще могут работать не так, как нужно.

К сожалению, расширения компилятора часто включены по умолчанию. Это особенно вредно для новичков в программировании, которые могут подумать, что специфическое поведение, вызванное расширениями компилятора, является частью официального стандарта языка C++ (когда, на самом деле, это не так).

Поскольку расширения компилятора очень редко требуются для решения большинства задач, и приводят к тому, что ваши программы не соответствуют стандарту языка C++, то рекомендуется отключать расширения компилятора.

Совет: Отключите расширения компилятора, чтобы ваши программы оставались совместимыми со стандартами языка C++ и работали в любой системе.

Примечание: Настройки, приведенные ниже, применяются для каждого проекта отдельно. Вам нужно будет это всё проделывать при создании нового проекта, либо создать шаблон с этими настройками и уже по этому шаблону создавать новые проекты.

Отключение расширений компилятора


Пользователям Visual Studio

Чтобы отключить расширения компилятора в Visual Studio, щелкните правой кнопкой мыши по названию вашего проекта в меню "Обозреватель решений" > "Свойства":

В диалоговом окне вашего проекта убедитесь, что в пункте "Конфигурация" установлено значение "Все конфигурации". Затем перейдите на вкладку "C/C++" > "Язык" и в пункте "Отключить расширения языка" выберите значение "Да (/Za)":

После этого нажмите "Применить" и "ОК".

Пользователям Code::Blocks

Отключить расширения компилятора можно через меню "Settings" > "Compiler":

Затем на вкладке "Compiler Flags" найдите пункт "Treat as errors the warnings demanded by strict ISO C and ISO C++ [-pedantic-errors]" и поставьте возле него галочку, после чего нажмите "OK":

Пользователям GCC/G++

Вы можете отключить расширения компилятора, добавив флаг -pedantic-errors в командную строку компиляции.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (205 оценок, среднее: 4,96 из 5)
Загрузка...

Комментариев: 6

  1. Сергій:

    При отключении расширений компилятора в Visual Studio -в пункте "Отключить расширения языка" выберите значение "Да (/Za), возникает Ошибка C2467 недопустимое объявление анонимного "struct", при подключении заголовочного файла #include <Windows.h> для подключения кирилицы.
    Было бы полезно это указать так как эта рекомендация (по подключению <Windows.h>) указывается в уроке 7, проблема 1, Как использовать кириллицу в программах C++? Что приводит к ошибкам.

  2. trCode:

    Спасибо большое за уроки! Очень понятно, и подробно!

  3. Алексей:

    Доброго времени суток! Такой вопрос: если отключить расширения, тогда как подключить кириллицу?

    1. Владислав:

      Також важливо встановити у самій консолі шрифт Lucida Console

      1. Владислав:

        і також підключити

    2. eumenth:

      работает на linux

      или

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *