ANSI C、ISO C、Standard C、C89、C90、C99
2016-12-28 22:20
387 查看
ANSI C、ISO C、Standard C、C89、C90、C99
ANSI C、ISO C 和Standard C是由ANSI(AmericanNational Standards Institute,美国国家标准学会)或ISO(International Organization for Standardization,国际标准化组织)等标准机构发布的C语言标准。
根据制定的语言标准开发软件有助于提高软件在编译器间的可移植性。
C语言的第一个语言标准是由ANSI(AmericanNational Standards Institute,美国国家标准学会)发布。后来,ISO(International Organization for Standardization,国际标准化组织)采纳了这份标准并发布其修订版。
ANSI C特指ANSI发布的第一版C语言标准。ISO C则指ISO发布的C语言标准。StandardC则是相对于ANSI C和ISO C的一个泛称,表示遵循标准规范的C。
C89(ANSI C)
C语言的第一个标准是由ANSI发布。在1983年,ANSI成立X3J11委员制定C语言标准规范。该委员会在1989年完成C语言标准的制定,并作为ANSIX3.159-1989 "Programming Language C"正式生效。这个标准被称作"ANSIC"或"C89"(为了区别于C99)。
C90
在1990年,ISO根据ANSI C标准(仅进行少量的格式更改)发布ISO/IEC 9899:1990。这个版本被称为C90。C89和C90在本质上是同一种语言标准。
C95
在1995年,ISO根据ANSI C标准发布了其修订版ISO/IEC 9899/AMD1:1995,也称C95。该版本除了修改ANSI C标准中的错误外,还添加了一些语言特性,如提供宽字符(wide character)、制定标准宏__STDC_VERSION__规范等。
C99
在2000年,ANSI采纳了ISO / IEC 9899:1999标准,该标准通常称为C99。相比于之前的标准,本标准显著增加了一些特性,如:
提供新的内置数据类型:longlong,_Bool等;
添加新的核心语言功能,如静态数组索引,可变长度数组,可变宏等;
添加新的库头文件,如stdint.h、tgmath.h、complex.h等;
删除了几个危险的C89语言功能,如隐式函数声明和隐式int等;
…
为了支持C11标准,ANSI和ISO分别撤回该标准。
C11
C11”是C语言的当前标准。相比于之前的标准,C11的显著特性有:支持Unicode、提供跨平台多线程API(threads.h)、在语言内核和库文件stdatomic.h中支持原子类型。ISO为C11发布了一个技术勘误:
ISO / IEC 9899:2011 / Cor 1:2012
参考:
https://en.wikipedia.org/wiki/ANSI_CANSI C
https://zh.wikipedia.org/wiki/ANSI_CANSI C
ANSI C、ISO C 和Standard C是由ANSI(AmericanNational Standards Institute,美国国家标准学会)或ISO(International Organization for Standardization,国际标准化组织)等标准机构发布的C语言标准。
根据制定的语言标准开发软件有助于提高软件在编译器间的可移植性。
C语言的第一个语言标准是由ANSI(AmericanNational Standards Institute,美国国家标准学会)发布。后来,ISO(International Organization for Standardization,国际标准化组织)采纳了这份标准并发布其修订版。
ANSI C特指ANSI发布的第一版C语言标准。ISO C则指ISO发布的C语言标准。StandardC则是相对于ANSI C和ISO C的一个泛称,表示遵循标准规范的C。
C89(ANSI C)
C语言的第一个标准是由ANSI发布。在1983年,ANSI成立X3J11委员制定C语言标准规范。该委员会在1989年完成C语言标准的制定,并作为ANSIX3.159-1989 "Programming Language C"正式生效。这个标准被称作"ANSIC"或"C89"(为了区别于C99)。
C90
在1990年,ISO根据ANSI C标准(仅进行少量的格式更改)发布ISO/IEC 9899:1990。这个版本被称为C90。C89和C90在本质上是同一种语言标准。
C95
在1995年,ISO根据ANSI C标准发布了其修订版ISO/IEC 9899/AMD1:1995,也称C95。该版本除了修改ANSI C标准中的错误外,还添加了一些语言特性,如提供宽字符(wide character)、制定标准宏__STDC_VERSION__规范等。
C99
在2000年,ANSI采纳了ISO / IEC 9899:1999标准,该标准通常称为C99。相比于之前的标准,本标准显著增加了一些特性,如:
提供新的内置数据类型:longlong,_Bool等;
添加新的核心语言功能,如静态数组索引,可变长度数组,可变宏等;
添加新的库头文件,如stdint.h、tgmath.h、complex.h等;
删除了几个危险的C89语言功能,如隐式函数声明和隐式int等;
…
为了支持C11标准,ANSI和ISO分别撤回该标准。
C11
C11”是C语言的当前标准。相比于之前的标准,C11的显著特性有:支持Unicode、提供跨平台多线程API(threads.h)、在语言内核和库文件stdatomic.h中支持原子类型。ISO为C11发布了一个技术勘误:
ISO / IEC 9899:2011 / Cor 1:2012
参考:
https://en.wikipedia.org/wiki/ANSI_CANSI C
https://zh.wikipedia.org/wiki/ANSI_CANSI C
相关文章推荐
- K&R C、ANSI C、C89、C90、C95、C99和C11的区别联系
- ANSI C与C89、C99、C11区别差异
- ANSI C与C89、C99、C11区别差异
- C语言的标准(K&R C,ANSI C,C89,C90,C99)
- C语言的标准(K&R C,ANSI C,C89,C90,C99)
- C语言规范:C89、C90、C95、C99
- ANSI c与C89,C99,C11的区别
- C语言规范:C89、C90、C95、C99
- 【C】——C语言规范:C89、C90、C95、C99
- 用条件运算符输出学生学习成绩,>=90输出A ;60-89输出B ;<60输出C
- [转]C99标准的新特性(相对于Ansi C)
- 从键盘上输入以下的数据:"TOM:89|JERRY:90|TONY:95",数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将结果按成绩由高到低排序。
- ANSI C、ISO C、Standard C联系与区别
- 从键盘上输入以下的数据:"TOM:89|JERRY:90|TONY:95",数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将结果按成绩由高到低排序。
- c99 和 c89(ANSI c)
- 标准c(c89,c99)原来不支持缺省参数
- 在一个长度为10的整形数组中,前9个元素是{12,23,34,45,56,67,78,89,90}。 现在要求输入一个整数,把它放到数组中正确的位置当中。(不能删除已有元素)
- 89、90、91
- 从键盘上输入以下的数据:"TOM:89|JERRY:90|TONY:95",数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将结果按成绩由高到低排序。
- 『C/C++』ANSI C、C99、C11