Ни одна версия gcc по умолчанию полностью не соответствует никаким стандартам ANSI или ISO C. Значение по умолчанию всегда эквивалентно -std=gnuNN
, поддерживая данный стандарт с расширениями, специфичными для GNU. До версии 5 (и несколько лет назад) значением по умолчанию было -std=gnu90
. Начиная с версии 5, по умолчанию используется -std=gnu11
.
Существует три стандарта ISO C: C90, C99 и C11. (C95 был незначительной поправкой к C90.) Первый стандарт ANSI C был опубликован в 1989 году и известен как C89; он описывает тот же язык, что и стандарт ISO C90.
Чтобы узнать версию языка по умолчанию для вашего gcc, введите
info gcc
поиск фразы "По умолчанию".
Предполагается, что у вас установлена документация gcc, что документация, обозначенная info gcc
, соответствует версии gcc, с которой вы работаете, и что формулировка достаточно похожа, что при поиске по умолчанию будет найдена правильная информация , Ничто из этого не гарантировано. Старые руководства по gcc могут быть организованы иначе.
Надежнее, запустите
gcc --version
чтобы узнать, какую версию вы используете, перейдите на страницу онлайн-документации GCC и прочитайте документацию для вашей версии.
Проще говоря, если у вас версия до 5.0, по умолчанию используется -std=gnu89
; в противном случае по умолчанию используется -std=gnu11
. (Это может измениться в будущем выпуске, но только через некоторое время после того, как новый стандарт ISO C будет опубликован, и сопровождающие gcc уже успели его реализовать и принять решение сделать его по умолчанию. Не останавливайтесь.)
Или вы можете полностью избежать вопроса, указав нужную версию с помощью параметра командной строки -std=...
.