<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=ANSI_C</id>
	<title>ANSI C - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=ANSI_C"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=ANSI_C&amp;action=history"/>
	<updated>2026-07-19T11:08:37Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=ANSI_C&amp;diff=681880&amp;oldid=prev</id>
		<title>~2026-28654-49：​/* C90 */</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=ANSI_C&amp;diff=681880&amp;oldid=prev"/>
		<updated>2026-05-12T06:39:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;C90&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA|G1=IT}}&lt;br /&gt;
&lt;br /&gt;
{{Sidebar&lt;br /&gt;
|name = C語言標準&lt;br /&gt;
|style = width:auto;background:#f5faff;font-size:90%;line-height:1.6em;&lt;br /&gt;
|titlestyle = font-size:130%;padding-left:0.4em;padding-right:0.4em;background:#cee0f2; &amp;lt;!--(gap before first heading/content:)--&amp;gt;display:block;margin-bottom:6px;&lt;br /&gt;
|title = [[C語言#歷史|C語言標準]]&lt;br /&gt;
|headingstyle = padding:0.1em 0.25em 0.15em;{{{headingstyle|}}}&lt;br /&gt;
|heading1 = [[K&amp;amp;R C]] • [[ANSI C]] • [[C99]] • [[C11 (C语言标准)|C11]] • [[C18 (C語言標準)|C18]] • [[C23 (C語言標準)|C23]]&lt;br /&gt;
|navbar = none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ANSI C&amp;#039;&amp;#039;&amp;#039;、&amp;#039;&amp;#039;&amp;#039;ISO C&amp;#039;&amp;#039;&amp;#039;、&amp;#039;&amp;#039;&amp;#039;Standard C&amp;#039;&amp;#039;&amp;#039;是指[[美国国家标准协会]]（ANSI）和[[国际标准化组织]]（ISO）对[[C语言]]发布的标准。历史上，这个名字专门用于指代此标准的原始版本，也是支持最好的版本（称为C89或C90）。使用C的软件开发者被鼓励遵循标准的要求，因为它鼓励使用[[跨平台]]的代码。&lt;br /&gt;
&lt;br /&gt;
==ANSI C和ISO C的历史==&lt;br /&gt;
C的第一个标准是由ANSI发布的。虽然这份文档后来被[[国际标准化组织]]（ISO）采纳并且ISO发布的修订版亦被ANSI采纳，但名称ANSI C（而不是ISO C）仍被广泛使用。&amp;lt;ref&amp;gt;{{cite web|url=https://blog.ansi.org/2017/09/origin-ansi-c-iso-c/|title=The Origin of ANSI C and ISO C|author=Brad Kelechava|accessdate=2018-08-14|date=2017-09-14|archive-date=2018-08-20|archive-url=https://web.archive.org/web/20180820045518/https://blog.ansi.org/2017/09/origin-ansi-c-iso-c/|dead-url=no}}&amp;lt;/ref&amp;gt;一些软件开发者使用名称&amp;#039;&amp;#039;&amp;#039;ISO C&amp;#039;&amp;#039;&amp;#039;，还有一些使用中立的名称&amp;#039;&amp;#039;&amp;#039;Standard C&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
&lt;br /&gt;
===C89===&lt;br /&gt;
1983年，美国国家标准协会组成了一个委员会，X3J11，为了创立C的一套标准。经过漫长而艰苦的过程，该标准于1989年完成，并在作为ANSI X3.159-1989 &amp;quot;Programming Language C&amp;quot;正式生效。这个版本的语言经常被称作&amp;quot;ANSI C&amp;quot;，或有时称为&amp;quot;C89&amp;quot;（为了区别C99）。&lt;br /&gt;
&lt;br /&gt;
===C90===&lt;br /&gt;
在1990年，ANSI C标准（带有一些小改动）被国际标准化组织采纳为ISO/IEC 9899:1990&amp;lt;ref&amp;gt;{{cite web|url=https://gcc.gnu.org/onlinedocs/gcc/Standards.html|title=Standards - Using the GNU Compiler Collection (GCC)|accessdate=2012-06-24|archive-date=2012-06-17|archive-url=https://web.archive.org/web/20120617213251/http://gcc.gnu.org/onlinedocs/gcc/Standards.html|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===C99===&lt;br /&gt;
{{main|C99}}&lt;br /&gt;
在2000年三月，ANSI采纳了ISO/IEC 9899:1999标准。这个标准通常即C99。&lt;br /&gt;
&lt;br /&gt;
===C11===&lt;br /&gt;
{{main|C11}}&lt;br /&gt;
在2011年12月，ANSI采纳了ISO/IEC 9899:2011标准。这个标准通常即C11。&lt;br /&gt;
&lt;br /&gt;
===C18===&lt;br /&gt;
{{main|C18 (C语言标准)}}&lt;br /&gt;
在2018年6月，ANSI采纳了ISO/IEC 9899:2018标准，这个标准通常即C18（有时被称为C17）。&lt;br /&gt;
&lt;br /&gt;
===C23===&lt;br /&gt;
{{main|C23 (C語言標準)}}&lt;br /&gt;
在2024年10月，ANSI采纳了ISO/IEC 9899:2024标准，这个标准通常即C23，它是C语言的现行标准。&lt;br /&gt;
&lt;br /&gt;
==主要编译器的支持==&lt;br /&gt;
ANSI C现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。任何&amp;#039;&amp;#039;仅仅&amp;#039;&amp;#039;使用标准C并且没有任何硬件依赖假设的代码实际上能保证在任何[[系统平台|平台]]上用遵循C标准的编译器编译成功。如果没有这种预防措施，多数程序只能在一种特定的平台或特定的编译器上编译，例如，使用非标准库，例如[[图形用户界面]]库，或者有关编译器或平台特定的特性例如数据类型的确切大小和[[字节序]].&lt;br /&gt;
&lt;br /&gt;
=== 选择编译 ===&lt;br /&gt;
為了增加[[C程序設計語言 (書)|K&amp;amp;R]] C和ANSI C的相容性，&amp;lt;code&amp;gt;__STDC__&amp;lt;/code&amp;gt;（&amp;quot;standard c&amp;quot;）巨集可以被用来将代码分割为ANSI和K&amp;amp;R部分。&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 #if __STDC__&lt;br /&gt;
 extern int getopt(int, char * const *, const char *);&lt;br /&gt;
 #else&lt;br /&gt;
 extern int getopt();&lt;br /&gt;
 #endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上面最好使用&amp;quot;&amp;lt;code&amp;gt;#if __STDC__&amp;lt;/code&amp;gt;&amp;quot;而不是&amp;quot;&amp;lt;code&amp;gt;#ifdef __STDC__&amp;lt;/code&amp;gt;&amp;quot;，因为一些实现可能会把&amp;lt;code&amp;gt;__STDC__&amp;lt;/code&amp;gt;设置为0来表示不遵循ANSI C。&amp;quot;&amp;lt;code&amp;gt;__STDC__&amp;lt;/code&amp;gt;&amp;quot;能处理任何没有被巨集替换或者值为0的标示符。因而即使巨集&amp;quot;&amp;lt;code&amp;gt;__STDC__&amp;lt;/code&amp;gt;&amp;quot;没有定义来表示不遵循ANSI C，&amp;quot;&amp;lt;code&amp;gt;__STDC__&amp;lt;/code&amp;gt;&amp;quot;仍然能像显示的那样工作。&lt;br /&gt;
&lt;br /&gt;
在上面的例子，一个原型中使用了ANSI实现兼容的函数声明，而另一个使用了过时的非原形声明。它们在C99和C90中依旧是ANSI兼容的，但并不被鼓励使用。&lt;br /&gt;
&lt;br /&gt;
==支持ANSI C的编译器==&lt;br /&gt;
* [[ARM推出的開發工具|ARM RealView]]&lt;br /&gt;
* [[Clang]]/[[LLVM]]&lt;br /&gt;
* [[GNU Compiler Collection|GCC]]&lt;br /&gt;
* [[Intel C++編譯器|Intel C++编译器]]&lt;br /&gt;
* [[LabWindows/CVI]]&lt;br /&gt;
* [[LCC (編譯器)|LCC]]&lt;br /&gt;
* [[Watcom C/C++编译器|Open Watcom 编译器]]&lt;br /&gt;
* [[Visual C++|Microsoft Visual C++]]（C89/90和部分C99）&lt;br /&gt;
* [[Tiny C Compiler]]（C89/90和部分C99）&lt;br /&gt;
* [[Sun Studio]]&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
{{Reflist|2}}&lt;br /&gt;
&lt;br /&gt;
==外部链接==&lt;br /&gt;
* [http://www.open-std.org/jtc1/sc22/wg14/ ISO C working group]{{Wayback|url=http://www.open-std.org/jtc1/sc22/wg14/ |date=20180212100115 }}&lt;br /&gt;
* [https://web.archive.org/web/20100822072551/http://flash-gordon.me.uk/ansi.c.txt &amp;#039;&amp;#039;Draft ANSI C Standard&amp;#039;&amp;#039; (ANSI X3J11/88-090)] (May 13, 1988), [http://groups.google.com/group/comp.lang.c/msg/20b174b18cdd919d?hl=en Third Public Review]{{Wayback|url=http://groups.google.com/group/comp.lang.c/msg/20b174b18cdd919d?hl=en |date=20110501130545 }}&lt;br /&gt;
* [http://www.scribd.com/doc/16306895/Draft-ANSI-C-Rationale &amp;#039;&amp;#039;Draft ANSI C Rationale&amp;#039;&amp;#039; (ANSI X3J11/88-151)]{{Wayback|url=http://www.scribd.com/doc/16306895/Draft-ANSI-C-Rationale |date=20100112165151 }}（Nov 18, 1988）&lt;br /&gt;
* {{Cite book&lt;br /&gt;
 |first=Axel-Tobias&lt;br /&gt;
 |last=Schreiner&lt;br /&gt;
 |authorlink=Axel-Tobias Schreiner&lt;br /&gt;
 |year=1994&lt;br /&gt;
 |title=Object oriented programming with ANSI-C&lt;br /&gt;
 |publisher=Hanser&lt;br /&gt;
 |isbn=3-446-17426-5&lt;br /&gt;
 |url=http://hdl.handle.net/1850/8544&lt;br /&gt;
}}&lt;br /&gt;
* {{Cite web&lt;br /&gt;
 |url       = http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+9899%3A1999&lt;br /&gt;
 |title       = ISO/IEC 9899:1999 Programming Languages -- C&lt;br /&gt;
 |publisher       = American National Standards Institute&lt;br /&gt;
 |accessdate       = 2010-06-29&lt;br /&gt;
 |archive-date       = 2011-07-25&lt;br /&gt;
 |archive-url       = https://web.archive.org/web/20110725123312/http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+9899:1999&lt;br /&gt;
 |dead-url       = yes&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
* {{Cite web&lt;br /&gt;
   |url=http://publicaa.ansi.org/sites/apdl/Documents/Standards%20Action/2005%20PDFs/SAV3648.pdf&lt;br /&gt;
   |title=ANSI Standards Action Vol. 36, #48&lt;br /&gt;
   |publisher=American National Standards Institute&lt;br /&gt;
   |date=2005-12-02&lt;br /&gt;
   |access-date=2010-06-29&lt;br /&gt;
   |archive-url=https://web.archive.org/web/20160304062427/http://publicaa.ansi.org/sites/apdl/Documents/Standards%20Action/2005%20PDFs/SAV3648.pdf&lt;br /&gt;
   |archive-date=2016-03-04&lt;br /&gt;
   |dead-url=yes&lt;br /&gt;
   }}&lt;br /&gt;
&lt;br /&gt;
{{C语言}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Ansi C}}&lt;br /&gt;
[[Category:C語言]]&lt;br /&gt;
[[Category:程式語言標準]]&lt;br /&gt;
[[Category:ANSI标准]]&lt;/div&gt;</summary>
		<author><name>~2026-28654-49</name></author>
	</entry>
</feed>