>>本人最近在看一些C语言的书时,发现不同版本的书总会备注有不同的标准(有些与书配套的编程软件有关),但我还是做了相关知识的收集。希望可能帮助到有类似困扰的朋友们(后续有时间会做相关细节的补充)。
K&R C:
1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)出版了一本书,名叫《The CPro gramming Language》。这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&RC”。
C89:
为统一C语言版本,1983年美国国家标准局(Amer ican National Standards Institute,简称ANSI)成立了一个委员会,来制定C语言标准。1989年C语言标准被批准,被称为ANSI X3.159-1989“Programming Language C”。这个版本的C语言标准通常被称为ANSIC。又由于这个版本是89年完成制定的,因此也被称为C89。
C90:
后来ANSI把这个标准提交到ISO(国际化标准组织),1990年被ISO采纳为国际标准,称为ISO C。又因为这个版本是1990年发布的,因此也被称为C90。所以ANSIC、I SO C、C89、C90这4个标准的内容其实是一样的。
C99:
在ANSI C标准确立之后,C语言的规范在很长一段时间内都没有大的变动。1995年C程序设计语言工作组对C语言进行了一些修改,成为后来的1999年发布的ISO/IEC 9899:1999标准,通常被成为C99。但是各个公司对C99的支持所表现出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的时候,微软和Borland却似乎对此不感兴趣。
C11:
在2011年12月,ANSI采纳了ISO/IEC 9899:2011标准,这个标准通常即C11。
C18:
2018年6月发布的ISO/IEC9899:2018标准,这个标准被称为C18,是目前最新的C语言编程标准,该标准主要是对C11进行了补充和修正,并没有引入新的语言特性。
C2x:
下一个版本的C语言标准,预计将于2022年12月1日完成。