问什么是“ANSI C 标准”?
答1983 年,美国国家标准协会 (ANSI) 委托成立了一个委员会 X3J11,负责标准化 C 语言。经过漫长而艰苦的过程,包括几次广泛的公开评审,该委员会的工作于 1989 年 12 月 14 日最终被批准为 ANS X3.159-1989,并于 1990 年春季发布。在很大程度上,ANSI C 标准化了现有的实践,并增加了一些来自 C++ 的特性(最著名的是函数原型)以及对多国字符集(包括备受争议的三字符序列)的支持。ANSI C 标准还正式确立了 C 运行时库支持例程。
一年后,该标准被采纳为国际标准 ISO/IEC 9899:1990,该 ISO 标准取代了美国境内的早期 X3.159(在美国称为 ANSI/ISO 9899-1990 [1992])。作为一项 ISO 标准,它会通过发布技术勘误和规范性增补进行持续修订。
1994 年,技术勘误 1 (TC1) 对标准进行了约 40 处修订,其中大部分是小修正或澄清,而规范性增补 1 (NA1) 增加了约 50 页的新内容,主要规定了用于国际化的新库函数。1995 年,TC2 增加了一些小修正。
最近,一项重要的标准修订,“C99”,已完成并被采纳。
标准的几个版本,包括 C99 和最初的 ANSI 标准,都包含了一个“理由”部分,解释了许多决策,并讨论了许多微妙之处,包括这里涵盖的几个。