このフォーラムでhttp://www.velocityreviews.com/forums/t287495-p2-iso-c89-and-iso-c99.html私はこれを見つけました:
概要:99は標準化されており、新しいキーワード、新しい配列、複素数、ライブラリ関数などがあります。より多くのコンパイラーは、これまでずっとそうしてきたので、c89が完成しています。
A)ANSIX3.159-1989。これは、1989年12月付けの元の1989 C標準であり、理論的根拠があります。言語の本体についてはセクション3で説明し、「Cライブラリ」(stdio、関数など)についてはセクション4で説明します。
B)ISO 9899:1990。これは元のISOC標準です。「ANSI」は米国規格協会であるため、国際的な群衆は、独自の異なる番号付けシステムを備えた独自の規格を持っている必要があります。彼らは単にANSIの1989規格を採用し、理論的根拠を削除し、セクションの番号を付け直しました(代わりに「条項」と呼びます)。ごくわずかな例外を除いて、3つ追加するだけで、ほとんどの言語がセクション-er、 "clause"-6、およびセクション7の"Cライブラリ"の部分で説明されます。
C)ISO 9899:1999。これは、可変長配列、柔軟な配列メンバー、「restrict」や「_Bool」などの新しいキーワード、「static」キーワードの新しいセマンティクス、匿名集計を作成するための新しい構文、新しい複素数を備えた、新しい「C99」標準です。タイプ、何百もの新しいライブラリ関数など。
新しいISO規格は、ANSIによってすぐに「逆採用」されました。これに関する公式の「ANSI認可」の主張は見たことがありませんが、通常の番号付けシステムを考えると、これはANSI規格番号X3.159-1999であると予想されます。(番号付けシステムは非常に明白です。標準は、公開されると、番号(ANSIの場合はX、またはISOの場合は単に番号)と発行年を示す接尾辞を取得します。既存の標準を更新すると、番号、新年付き。)
X3.159-1989と9899:1990は年とセクション番号が異なりますが、実質的に同じであるため、「C89」と「C90」は実際には同じ言語を指します。したがって、「C89」または「C90」のいずれかを言うことができ、すべての微妙なことを知っている人にとっても同じことを意味します。
また、元の1990 ISO規格には、「規範的正誤表1」と2つの「技術的正誤表」(番号付き、技術的正誤表1とTC2を与える)という小さな改訂がいくつかありました。2つのTCは、標準の文言の不具合に対する「バグ修正」と見なされますが、NA1は実際の「変更」です。実際には、TCは実際にはユーザーに影響を与えませんが、NA1はユーザーが使用できる多数の機能を追加するため、NA1は実際にはより重要です。NA1は1994年に発売されたため、「NA1によって変更されたISO 9899:1990」を「C94」と呼ぶ場合があります。「C95」という名前も見ました。