Есть ли различия между ANSI C и ISO C?
Я понимаю, что есть и стандарт ANSI, и стандарт ISO для C. Есть ли различия между этими двумя стандартами? Если так, то кто они? И если нет разницы, то какой смысл иметь два стандарта?
2 ответа
В 1990 году Международная организация по стандартизации приняла стандарт ANSI C (с небольшими изменениями) в виде ISO/IEC 9899:1990. Эта версия иногда называется C90. Следовательно, термины "C89" и "C90" относятся по существу к одному и тому же языку.
Источник, ситуация аналогичная, но для С99 все наоборот. Существует также запись C FAQ по этому вопросу.
Причина, по которой существует два стандарта, проста: ANSI является североамериканским органом по стандартизации, а ISO - международным.
Помимо того факта, что новые изменения будут ратифицированы ISO перед национальными органами по стандартизации, такими как ANSI, эти два варианта одинаковы. Однако обычно неправильное использование означает, что "ANSI C" означает исходный язык, стандартизованный ANSI в 1989 году, а "ISO C", "ISO C99" или просто "C99" означает текущий стандарт, принятый ISO в 1999 году.