edit Кредит переходит к @ Nicholas Knight за публикацию скриншота из окна выбора диалекта C в XCode: http://dl.dropbox.com/u/14571816/xcodelang.png
ANSI C исторически относится к стандарту ANSI C89 (практически то же самое, что и C90). XCode использует версию GCC в качестве серверной части компилятора для компиляции кода C, поэтому я думаю, что именно здесь они получают эти «опции», так как вы можете указать флаг -ansi
или различные флаги std=
, чтобы выбрать режим Бэкенд компилятора C должен работать для компиляции вашего кода.
Так что, если вы передадите его -ansi
и используете компилятор C, это будет эквивалентно -std=c90
, что также эквивалентно -std=c89
или -std=iso9899:1990
.
-ansi
В режиме C это эквивалентно -std=c90
. В режиме C ++ это эквивалентно
-std=c++98
.
И если вы используете флаги -std
, вы можете передавать определенные значения для активации различных языковых функций.
-std=
Определить языковой стандарт. Эта опция в настоящее время поддерживается только при компиляции C или C ++.
Эти аргументы эквивалентны:
c90
c89
iso9899:1990
Поддержка всех программ ISO C90 (некоторые расширения GNU, конфликтующие с ISO C90, отключены). То же, что -ansi
для кода C.
Эти аргументы эквивалентны:
iso9899:199409
ISO C90 с изменениями в поправке 1.
Эти следующие аргументы эквивалентны:
c99
c9x
iso9899:1999
iso9899:199x
ISO C99. Обратите внимание, что этот стандарт еще не полностью поддерживается; увидеть
http://gcc.gnu.org/gcc-4.5/c99status.html для получения дополнительной информации. Имена c9x
и iso9899: 199x устарели.
Эти следующие аргументы эквивалентны:
gnu90
gnu89
GNU диалект ISO C90 (включая некоторые функции C99). Это по умолчанию для C
Код.
Эти следующие аргументы эквивалентны:
gnu99
gnu9x
GNU диалект ISO C99. Когда ISO C99 полностью внедрен в GCC, это будет
стать по умолчанию. Имя gnu9x устарело.