学了C语言,你都了解ANSI C、GNU C、ISO、ANSI、GNU你都了解吗?
ISO
ISO(International Organization for Standardization,国际标准化组织)
ANSI
ANSI(American National Standards Institute,美国国家标准协会)
ANSI C也就是美国国家标准协会发布的C语言的标准,因为这个东西本来就是人家创建的,所以他说的就是标准,就是这么简单。
C标准
下面说的各个C语言的发布版本都是C语言的标准,只是版本的更迭。
C89
1983年,美国国家标准协会(ANSI)成立了一个委员会X3J11,以建立C的标准规范。
C90
1990年,国际标准化组织(ISO)采用了ANSI C标准(格式有所更改),称为ISO / IEC
9899:1990,也称为C90。所以C89和C90几乎上是同一个标准,本来C89是ANSI在83创建的,然后在90年ISO采用了这套标准。
C99
进一步修订C标准,于1999年发布ISO / IEC 9899:1999,通常被称为C99。引入了一些新的特性。比如内联函数,几种新的数据类型等等。
C11
2011年12月8日正式发布,C11标准为C和库添加了许多新功能,包括类型通用宏,匿名结构,改进的Unicode支持,原子操作,多线程和边界检查功能。它还使现有C99库的某些部分可选,并提高了与C
++的兼容性。
C18
C18于2018年6月发布,是C编程语言的当前标准。没有引入任何新的语言功能,仅仅进行了技术更正。
GNU
GNU(GNU’s Not
Unix!),由于Unix操作系统是商业化出身的,所以GNU就是为了打造一个自由的操作系统,以GPL方式发布,这是GNU计划的一部分。
GNU计划(GNU
Project),又译为革奴计划,是一个自由软件集体协作计划,1983年9月27日由理查德·斯托曼在麻省理工学院公开发起。它的目标是创建一套完全自由的操作系统,称为GNU
因为GUN计划是要打造一套生态系统,GCC(GNU Compiler
Collection,一套GNU编译器),最原始他只能支持C语言的编译,后来才慢慢支持Fortran、Pascal、Objective-C、Java、Ada,Go等语言。
这里针对C语言而言,GNU不仅支持了原有的C标准,还进行了扩展,这当然不属于ISO发布的那一套C标准了,于是这就诞生了GNU C。
所以你只要看到"GNUxxx"这样的字眼,这些都是GNU计划打造的一整套开源免费自由以GPL方式发布的生态系统。
最后不得不感叹这就是伟人的魅力!