#c #standards #c 98
#c #стандарты #c 98
Вопрос:
Кто-то сказал мне, что C 98 был написан под ANSI до того, как был официально стандартизирован как ISO / IEC 14882: 1998.
Я знаю, что ANSI был связан с C, но, похоже, я не могу найти много доказательств того, что фраза «ANSI C » ужасно точна.
- Является ли «ANSI C » хорошим описанием для C 98?
- Является ли «ANSI C » хорошим описанием для последующих версий стандарта C ?
Комментарии:
1. Сложно подобрать ответ на этот вопрос. Рад видеть, что это привлекло всех новичков. 🙂
2. Спасибо за все ваши ответы. Я думаю, что я удовлетворен. 🙂
Ответ №1:
Первоначально, в 89 году, стандартизацией C занимался ANSI X3J16. Начиная с 91-го года, к нему присоединился ISO WG21. Возможно, вы захотите прочитать в BS Историю C : 1979-1991. ИМО, «ANSI C » — это просто оставшееся название; язык — «ISO C «, хотя ANSI косвенно участвует в стандартизации.
Ответ №2:
На этой странице gotw кратко описывается взаимосвязь ANSI и ISO с точки зрения C :
Официальные названия комитетов ISO и США следующие:
ISO / IEC JTC1/SC22/WG21 — C (комитет ISO C )
INCITS PL22.16 — C (комитет США по C , часто называемый «комитетом ANSI C » — хотя, точнее, INCITS — это отдельная организация, которая не является частью ANSI, но аккредитована ANSI для разработки стандартов США) (ранее называлась X3J16 и J16)
Эти две группы вместе часто упоминаются в единственном числе как «комитет C «, потому что они встречаются и выполняют свою работу вместе. Собрания всегда проходят в одной комнате в одно и то же время
Похоже, стандарт ISO, разработанный этим комитетом, автоматически становится стандартом США, хотя я уверен, что люди, которые действительно работают в этих комитетах, могут объяснить лучше.
Комментарии:
1. В большинстве стран стандарт ISO автоматически становится национальным стандартом (или стандартом национального органа, в зависимости от того, как все организовано в стране). Таким образом, ISO C — это также ANSI C , BSI C , DIN C и т.д. Обычно, когда это стандарт ISO, мы называем его ISO, а не меняем название в зависимости от страны, в которой мы находимся.
Ответ №3:
Вроде того, но не совсем. Отдельного стандарта ANSI для C нет и никогда не было.
Текущий стандарт, однако, на самом деле является INCITS / ISO / IEC 14882-2003. С 2003 года INCITS стала отдельной организацией, аккредитованной ANSI. Название INCITS не было новым, но ранее оно было частью ANSI. В 2003 году он был «выделен» в отдельную (но все еще аккредитованную ANSI) организацию. Таким образом, текущий стандарт (2003) отображается как стандарт INCITS / ISO / IEC, и я полагаю, что предстоящий стандарт (2011) также будет.
Комментарии:
1. … и я всегда думал, что это BS / ISO / IEC 14882: 2003 😉 .
2. @Charles: Близко, но не совсем. Есть небольшая разница: это
BS ISO/IEC 14882-2003
. Хотя я не совсем уверен, сколько означает пробел в сравнении с косой чертой. Я хотел сказать не столько о том, чтобы отдать должное INCITS или чему-то подобному, сколько указать на то, что «ANSI» вообще не упоминается, а INCITS теперь является отдельной организацией от ANSI. shop.bsigroup.com/en/ProductDetail/?pid=000000000030116778
Ответ №4:
C 98 был разработан международным комитетом, входящим в Международную организацию по стандартизации (ISO). ANSI и другие национальные органы по стандартизации являются членами этого комитета. Международный стандарт был принят ANSI в качестве национального стандарта США, а также многими другими национальными органами по стандартизации.
Более ранние версии были коммерчески разработаны в США AT amp; T; Я не уверен, был ли ANSI задействован в промежуточных версиях (РЕДАКТИРОВАТЬ: но ответ Эрика предполагает, что это было, вкратце).
Является ли «ANSI C » хорошим описанием для C 98?
Я бы назвал это «Стандартным C «, или «C 98», или просто «C «, если понятно, что я говорю о текущем стандарте. Несмотря на техническую точность, «ANSI C » может сбить с толку людей, которые не понимают, что это означает одно и то же, особенно людей из других стран, которые могут не знать, что такое ANSI. У меня, вероятно, получилось бы странно, если бы я назвал это «Британский стандарт C «, столь же точное описание.
Является ли «ANSI C » хорошим описанием для последующих версий стандарта C ?
Тот же ответ. Стандарты C разработаны ISO и приняты ANSI и другими организациями.
Комментарии:
1. Или наоборот: первоначальным стандартом C был ANSI C 1989. Принятый ISO в 1990 году, он стал (с другими номерами абзацев, но в остальном тем же) ISO C 1990. Однако стандартом C с самого начала был ISO.
2. @James: действительно, стандартизация C пошла другим путем. Когда я сказал «стандарты» в последнем предложении, я имел в виду стандарты C , а не международные стандарты в целом.
Ответ №5:
AFAIK когда говорят «ANSI C «, на самом деле имеют в виду «нет расширений, специфичных для компилятора».
Комментарии:
1. Верно, но это ничего не говорит о том, насколько он точен.
Ответ №6:
Рабочая группа ISO создает стандарт. В C 98 была проделана большая работа по стандартизации в Америке (потому что именно там был создан C и где жили его создатели) до того, как стандартизация была проведена под эгидой комитета ISO (которым были те же люди). Затем окончательный стандарт ISO был принят ANSI и другими национальными органами по стандартизации.
Я всегда называл стандартный C «Стандартным C «.
Комментарии:
1. Бьярне — датчанин / британец, и C был создан для его докторской диссертации, которую он написал в Англии. Он переехал в Штаты позже.