2013-07-24 2 views
0

Я только начал программировать на C, но я полностью смущен.Как получить стандарт C на моем компьютере?

Я использовал для написания кода в Visual Studio 2012, но он совместим с C89 (или ANSI C?). Я установил CodeBlocks с компилятором MinGW. Я хочу узнать, как знать, что такое стандарт C на моем компьютере, который я могу запрограммировать? C89, C90, C99 или даже C1X? Или я не понимаю, что это значит. Что определяет стандарт C на моем компьютере? Компилятор или среда IDE?

+0

Компилятор - это то, что действительно должно соответствовать стандарту, если это то, о чем вы просите. – chris

+0

@chris, что на самом деле определяет стандарт языка C? – Andrius

+0

@Andrius Знаете ли вы, что это означает "стандарт"? – johnchen902

ответ

3

Это не зависит от вашего компьютера, а от вашего компилятора. В конце концов, компьютер (под которым я имею в виду процессор) не имеет дело с C, а с машинными инструкциями. Это компилятор, который интерпретирует C в соответствии с некоторыми стандартами и переводит его на команды, дружественные к ЦП.

GNU Compiler Collection может иметь дело со множеством стандартов С, которые вы можете выбрать с помощью -std= flag.

Дополнение: на некоторых (встроенных) системах у вас есть только ограниченный выбор компиляторов, который может поддерживать только ограниченное число стандартов. Таким образом, доступный вам стандарт C может быть ограничен вашим компьютером.

+0

Спасибо, вот что я искал – Andrius

0

Чтобы добавить немного для тонкого ответа Kninnug, чтобы помочь вам понять различие между стандартами:

Википедия имеет много полезных ссылок, описывающих различие между различным C-х годами, и даже там, где, чтобы получить «окончательные проекты» из стандартные, которые являются бесплатными. Я считаю, что они очень полезны для написания строго совместимого кода.

http://en.wikipedia.org/wiki/C11_%28C_standard_revision%29, который указывает на http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

Затем, если вы работаете в POSIX (например, Linux) мира в POSIX расширениями стандарта C для мира UNIX также полезны. Хорошей отправной точкой является

http://pubs.opengroup.org/onlinepubs/009695399/

Это где вы получаете вещи, такие как Getopt(), которые не встречаются в стандарте C. Опять я рекомендую изучить страницы Википедии по этому вопросу.

Смежные вопросы