本文转载

【K&R C】 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了《The C Programming Language》的第一版(按照惯例,经典著作一定有简称,该著作简称为 K&R),书末的参考指南 (Reference Manual) 一节给出了当时 C 语言的完整定义,成为那时 C 语言事实上的标准,人们称之为 K&R C。从这一年以后,C 语言被移植到了各种机型上,并受到了广泛的支持,使 C 语言在当时的软件开发中几乎一统天下。

【C89 (ANSI C)】 随着 C 语言在多个领域的推广、应用,一些新的特性不断被各种编译器实现并添加进来。于是,建立一个新的“无歧义、于具体平台无关的 C 语言定义” 成为越来越重要的事情。1983 年,ASC X3(ANSI 属下专门负责信息技术标准化的机构,现已改名为 INCITS)成立了一个专门的技术委员会 J11(J11 是委员会编号,全称是 X3J11),负责起草关于 C 语言的标准草案。1989 年,草案被 ANSI 正式通过成为美国国家标准,被称为 C89 标准

【C90 (ISO C)】 随后,《The C Programming Language》第二版开始出版发行,书中内容根据 ANSI C(C89)进行了更新。1990 年,在 ISO/IEC JTC1/SC22/WG14 (ISO/IEC 联合技术第 I 委员会第 22 分委员会第 14 工作组) 的努力下,ISO 批准了 ANSI C 成为国际标准。于是 ISO C(又称为 C90) 诞生了。除了标准文档在印刷编排上的某些细节不同外,ISO C(C90) 和 ANSI C(C89) 在技术上完全一样。

【C95】 之后,ISO 在 1994、1996 年 分别出版了 C90 的技术勘误文档,更正了一些印刷错误,并在1995 年通过了一份 C90 的技术补充,对 C90 进行了微小的扩充,经过扩充后的 ISO C 被称为 C95。

C99】 1999 年,ANSI 和 ISO 又通过了最新版本的 C 语言标准和技术勘误文档,该标准被称为 C99 。这基本上是目前关于 C 语言的最新、最权威的定义了。

现在,各种 C 编译器都提供了 C89(C90) 的完整支持,对 C99 还只提供了部分支持,还有一部分提供了对某些 K&R C 风格的支持。

目前主要的C语言规范有c89(c90), c95(94)和c99。C89是最早的C语言规范,于89年提出,90年先由美国国家标准局推出ANSI版本,后来被接纳为ISO国际标准 (ISO/IEC 9899:1990),因而有时也称为c90。但在94和96年分别对c90进行了两次错误修正,gcc支持的是修正后的c89(90)版本的C语言规范。在95年提出过对90版规范的修订案,称为 C95或者AMD1。gcc也支持c95规范。最新的一次C规范修订在99年制定(ISO/IEC 9899:1999),即常称的C99规范。在2001年对C99的错误进行了修正,gcc支持的修正后的c99规范,但是到目前为止,gcc还没有完成对c99规范的完全支持。

另附:C语言起源

【起源】 C 语言最早的原型是 ALGOL 60 1963 年,剑桥大学将其发展成为 CPL(Combined Programing Language)。 1967 年,剑桥大学的 Matin Richards 对 CPL 语言进行了简化,产生了 BCPL 语言。 1970 年,美国贝尔实验室(Bell Labs)的 Ken Thompson 将 BCPL 进行了修改,并取名叫做 B 语言,意思是提取 CPL 的精华(Boiling CPL down to its basic good features)。并用 B 语言写了第一个 UNIX 系统。 1973 年,AT&T 贝尔实验室的 Dennis Ritchie(D.M.RITCHIE) 在 BCPL 和 B 语言的基础上设计出了一种新的语言,取 BCPL 中的第二个字母为名,这就是大名鼎鼎的 C 语言。随后不久,UNIX 的内核(Kernel) 和应用程序全部用 C 语言改写,从此,C 语言成为 UNIX 环境下使用最广泛的主流编程语言。

【C】——C语言规范:C89、C90、C95、C99相关推荐

  1. C语言的C89标准与C99标准

    在1987年,ANSI(美国国家标准学会)公布了新标准----87 ANSI C 1990年,国际标准化组织接受了87 ANSI C , 把它作为 ISO C 的标准,也就是我们常说的C89,是目前应 ...

  2. C语言规范:C89、C90、C95、C99

    本文转载 [K&R C] 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了<The C Programming Language>的第一版 ...

  3. C语言规范:C89、C90、C95、C99及C89和C99区别

    [K&R C] 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了<The C Programming Language>的第一版(按照惯例 ...

  4. C语言规范:C89,C90,C95,C99

    本文转载 [K&R C] 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了<The C Programming Language>的第一版 ...

  5. C语言的C89、C90、C99和C11标准,你能区分吗?

    C89是ANSI组织在80年代制定的标准. C90是ISO组织接受C89标准在90年代发布的标准,其实与C89一样. C99是上述两个组织于90年代发布的标准. C11是2011年发布的标准. 你明白 ...

  6. C语言拾遗-C语言基础-C89、C99与C11

    摘要:我们今天使用的 Windows.Linux.Mac OS 等操作系统都是由一种叫做 Unix 的系统演化而来.Unix 作为80年代主流的操作系统,是整个软件工业的基础,是现代操作系统的开山鼻祖 ...

  7. 【 C 】KR C 与 ANSI C的区别(KR C,ANSI C,C89,C90,C99)(C11)

    本文转载自:C–K&R C 与 ANSI C的区别 转载的原因在于后面我的C博文也需要这个区分. C语言由Dennis M. Ritchie在1973年设计和实现.从那以后使用者逐渐增加.到1 ...

  8. C90、C99、C11——C语言的三套标准

    C90 标准 由于C语言被各大公司所使用(包括当时处于鼎盛时期的 IBM PC),因此到了 1989 年,C语言由美国国家标准协会(ANSI)进行了标准化,此时C语言又被称为 ANSI C.而仅过一年 ...

  9. CLion怎么指定编译时使用C语言标准(C89/C90/ANSI C、C99、C11、C17/C18)?

    文章目录 一.起因 二.解决办法 三.相关文章 一.起因 下载的CLion没有自带gcc编译器,需要自己指定,而自己指定的gcc的版本一般都比较高,以我自己Windows电脑上的gcc8.1为例,它默 ...

最新文章

  1. mysql 字段必填 属性_如何判断数据库中的字段是否具有必填属性(50分)
  2. python假设产品列表如下请首先打印出商品列表_Python列表练习题
  3. [新产品发布|推广] 赠书活动来了,参与有机会得《产品经理那些事儿》图书!...
  4. 编码服务正在步入云端
  5. SAP Spartacus 服务器端渲染文件 server.js 和构建后的 main.js 对比
  6. jest忽略如何添加忽略_大多数人忽略的基本家庭维护任务
  7. #1406 data too long for column '' at row 1
  8. 【翻译】Siesta事件记录器入门
  9. 使用Spring Security安全控制
  10. 高清成主流 十大最受用户关注摄像头
  11. java 密码生成器_[Java小白]WIFI纯数字密码字典生成器
  12. 27_iOS干货19之网络4_在线http/https素材资源
  13. PMP考试-计算题公式汇总-(第6版)
  14. NUCLEO开发板:STM32 st-link驱动程序错误
  15. 使用pktgen-dpdk和l2fwd测试RFC2544
  16. 基于移动终端的增强现实技术方案(已实现)
  17. 计算机软件操作试题多选,2016职称计算机考试WPS_Office多选试题及答案
  18. S2JH 自动审计@Audited 的问题
  19. ABAP中时间戳的处理
  20. 关于用户名登录的问题

热门文章

  1. 进制转换(C++):十六进制、二进制、十进制(附源代码)
  2. 微信小程序调用新闻类API
  3. 关于ArcGIS中选择属性值为空的语句
  4. 仿淘宝,天猫评分效果
  5. 淘宝“1元包邮”促销存陷阱 客户信息被卖家套取并转卖,你知道吗?
  6. 在多声卡的情况下使用修改注册表的方法设置默认声卡
  7. 中科大软件学院-软件测试-实验4-web性能测试-Microsoft  Web Application Stress Tool安装(win10下)
  8. 哪些学校不让用matlab,新一轮制裁?部分高校被禁止使用matlab,科学无国界就是一句笑话...
  9. VMware 15 出现的EFI VMware Virtual SCSI Hard Drive(0,0) …. unsuccessful、Directory “EZBOOT“ not found问题
  10. uni-app 不用onShow返回上一页刷新数据