C 语言标准

C语言作为一种常用的计算机开发语言,被用于各种领域,尤其是单片机与嵌入式的开发,在现阶段更有着无可替代的作用,我也经常会使用C语言进行各种开发,使用过程中我们经常会听说 GUN C 、ANSI C、标准C这几个术语,在了解这几个术语对应的C标准之前,我们需要先了解三个组织,分别是自由软件基金会,美国国家标准学会以及国际标准化组织。下面对其三个组织进行简单说明:

自由软件基金会:是美国的一个民间非营利组织,致力于推进自由软件,其中linux与gnu就是由这个组织在维护。
美国国家标准学会:听名字就知道这是美国用于制定自己国家标准各类标准的组织(政府组织)
国际标准化组织:作用同美国国家标准协会相似,只是这个组织的目标更远大一些,致力于制定国际标准。
其中GNU C 是软件自由基金会制定的标准,ANSI C 是由美国国家标准学会制定的标准,而ISO C则是由国际标准化组织制定的标准,当前是一个国际化的时代,都在追求标准,那么这个标准化肯定不能是某一个国家的标准,那么这个标准肯定要有国际标准化组织来制定,所以我们常说的标准C其实就是ISO C,下面统称为标准C

标题K&R C

C 语言最初由 Dennis Rithie 于 1969 年到 1973 年在 AT&T 贝尔实验室开发出来的,主要用于重新实现 Unix 操作系统。此时 C 语言叫做 K&R C(K 是 Kernighan 的首字母,R 是 Rithie 的首字母)。
即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最低标准要求,许多老旧的编译仍然运行K&R C的标准。

ANSI C和ISO C

C 的第一个标准是由ANSI发布的。虽然这份文档后来被国际标准化组织(ISO)采纳并且ISO发布的修订版也被ANSI采纳了,但名称ANSI C(而不是 ISO C)仍被广泛使用。ANSI C现在被几乎所有广泛使用的编译器支持。现在多数C代码是在ANSI C基础上写的。
C 语言被各大公司所使用,因此到1989 年,美国国家标准协会(ANSI)对此进行了标准化;

C89和C90

1983年,美国国家标准协会组成了一个委员会,X3J11,为了创立 C 的一套标准。经过漫长而艰苦的过程,该标准于1989年完成,并在作为ANSI X3.159-1989 “Programming Language C”正式生效。这个版本的语言经常被称作”ANSI C”,或有时称为”C89”(为了区别C99)。 在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会采纳为ISO/IEC 9899:1990。这个版本有时候称为C90或者ISO C。因此,C89和C90通常指同一种语言。
ISO/IEC 9899:1990 中的 9899 是 C 语言在 ISO 标准中的代号,像 C++ 在 ISO 标准中的代号是 14882;冒号后面的 1990 表示当前修订的好的版本是在 1990 年发布的。

C99

1999年,正式发布了 ISO/IEC 9899:1999,简称 C99。2000年3月,ANSI 采纳了 ISO/IEC 9899:1999 标准。
C99 标准引入了许多特性,包括:内联函数、可变长度的数组、灵活的数组成员(用于结构体)、复合字面量、指定成员的初始化器、对 IEEE754 浮点数的改进、支持不定参数个数的宏定义、在数据类型上增加了 long long int 以及复数类型。
但是,很少有 C 语言编译器是完整支持 C99 ,像主流的 GCC 以及 Clang 编译器支持高达 90% 以上,而微软的 Visual Studio 2015 中的 C 编译器只能支持 70% 左右。

C11

2007 年,C 语言标准委员会又重新修订 C 语言,到 2011 年正式发布了 ISO/IEC 9899:2011,简称 C11 标准。
C11 标准引入了:字节对齐说明符、泛型机制、对多线程的支持、静态断言、原子操作以及对 Unicode 的支持。

C标准文档(内含C89/C90,C99,C11标准文档)
链接:https://pan.baidu.com/s/1mwEaXsy0Apf9npDcM3bL-Q
提取码:vcbf

参考资料
C语言中文网:http://c.biancheng.net/view/143.html
维基百科:https://en.wikipedia.org/wiki/C_(programming_language)
C语言标准委员会的最新动态:http://www.open-std.org/jtc1/sc22/wg14/)

C语言之标准(KRC 、c89、c99、c11)相关推荐

  1. C标准-->C89/C99/C11

    版权声明:本文为CSDN博主「quectel-wifi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/xie ...

  2. C发展史:KR C/C89/C99/C11 C++发展史: C++98/C++03/C++11

    C语言的发展阶段 C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言. 1967年,剑桥大学的Martin Richards对CPL语言进行了简 ...

  3. C语言关键字 ISO/ANSI C90 C99 C11

    面试考点 https://blog.csdn.net/csdn_kou/article/details/81113215 * 有的常用的我们都不知道是关键字,比如sizeof.这是面试中的考点,要注意 ...

  4. C发展史: KR C/C89/C99/C11 以及 C++发展史: C++98/C++03/C++11

    查看全文 http://www.taodudu.cc/news/show-3075876.html 相关文章: 电瓶车续航测试软件,谁续航最牛:24款电动汽车实测数据全曝光 大牛建议--C++学习建议 ...

  5. 标准c(c89,c99)原来不支持缺省参数

    编译一个图象接口库,其中用到cvSaveImage( out_img_name, img); 编译报错: too few arguments to function cvSaveImage 一下子就糊 ...

  6. C语言三大标准C89,C99和C11

    C89 标准 1983 年美国国家标准局(American National Standards Institute,简称 ANSI)成立了一个委员会,专门来制定C语言标准.1989 年C语言标准被批 ...

  7. C11标准委员会成员解读C语言新标准

    导读:C语言国际标准新的新草案之前已经公布,新标准提高了对C++的兼容性,并将新的特性增加到C语言中.此外支持多线程的功能也受到了开发者的关注,基于ISO/IEC TR 19769:2004规范下支持 ...

  8. 【C语言】中的版本规范(C89 C99等)

    C语言中的版本 一.相关基础知识 ISO:国际标准化组织(International Organization for Standardization,ISO)简称ISO,是一个全球性的非政府组织,是 ...

  9. C语言标准 C89/C90/C99/C11之间的区别

    C89.C90.ANSI C通常指的是同一个C语言标准.1989年,美国国家标准协会(ANSI)推出C语言和C标准库的标准. 该标准通常被称为ANSI C.由于该标准是1989年推出的,因此也被称为C ...

最新文章

  1. 李彦宏成为首登《时代周刊》的互联网大佬,百度研究院再添三名大牛
  2. php rdp,小猿圈linux下使用FreeRDP 连接 Windows 远程桌面
  3. 用系统某一用户的的身份运行某一命令
  4. php7不支持mysql扩展了么_php7不支持mysql扩展需要改成mysqli扩展
  5. CentOS Linux 系统命令之rmdir命令
  6. Mobile Terminal无法使用常用Unix命令
  7. AcWing 1738. 蹄球(特殊基环树)
  8. 内网神器cobaltstrike使用教程
  9. C#中Panel控件的使用
  10. 内存超频时序怎么调_超频技术之内存“时序”重要参数设置解说
  11. ESP8266无线模块相互通信
  12. Firefox的下载处理器:FlashGot v1.0 Final颁发
  13. 360校招 求立方体表面积
  14. w10计算机恢复出厂设置,win10强制恢复出厂设置教程
  15. [ICPC Asia Nanjing 2019] Holy Grail (spfa最短路)
  16. java定义一个长方形类,该类中具有长方形长宽两种属性,并具有相应的构造方法属性访问方法,计算长方形的周长和面积的方法,要求输出长是5,宽是4的长方形
  17. 【转】常见蓝屏错误信息
  18. 微型计算机m3500q,爆发“小”宇宙 创新与实用完美结合 ——联想ThinkCentre M3500q超小商用台式机新品发布...
  19. 正则表达式 语法详解
  20. Java数组实现冒泡排序

热门文章

  1. 老款MacBook浴火重生记
  2. 最新排名!伦敦、纽约、悉尼入选最适合营商的顶级投资居留城市前三;Canva可画完成2亿美元融资估值达400亿美元 | 美通社头条...
  3. 关于GPS(全球定位系统)的前世今生及发展前景
  4. 【人工智能】知识图谱
  5. 问题记录:编译失败,报错Fatal error compiling
  6. CIVIC DILL MIX
  7. 【Peter Dayan】自然和人工强化学习的结合、以及未来的发展方向
  8. socket pipe
  9. 400 Bad Request报错解决
  10. Amason S3 (一)