2010-11-20 2 views
11

Я понимаю, что существует стандарт ANSI и стандарт ISO для C. Существуют ли различия между этими двумя стандартами? Если так, то кто они? И если нет никакой разницы, то в чем смысл иметь два стандарта?Существуют ли различия между ANSI C и ISO C?

ответ

8

В 1990 году Стандарт ANSI C (с несколькими незначительными модификациями) был принят Международной организацией по стандартизации в качестве ИСО/МЭК 9899: 1990. Эта версия иногда называется C90. Поэтому термины «C89» и «C90» относятся, по существу, к одному и тому же языку.

Source, ситуация аналогичная, но обратная для C99. Существует также C FAQ entry по этому вопросу.

Причина, по которой существуют два стандарта, проста: ANSI является органом североамериканских стандартов, а ISO - международным.

+2

Добавить временную шкалу в обратном порядке с C99, который стал стандартом ISO в 1999 году и стандартом ANSI в 2000 году. Важно учитывать, когда речь идет о стандартах C - год. :) «ANSI C» или «ISO C» обычно относятся к C89; когда люди имеют в виду C99, они обычно так говорят. –

+0

@Fabian: Хорошо, я тоже принял это значение C89/C90. –

4

Помимо того, что новые изменения будут ратифицированы ИСО перед национальными органами стандартизации, такими как ANSI, эти два являются одинаковыми. Однако обычный неверный использование для «ANSI C» означает исходный язык, стандартизованный ANSI в 1989 году, и «ISO C», «ISO C99» или просто «C99», чтобы означать текущий стандарт, принятый ISO в 1999.

+0

(И у нас есть C11) –