【C】——C语言规范:C89、C90、C95、C99
本文转载
【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相关推荐
- C语言的C89标准与C99标准
在1987年,ANSI(美国国家标准学会)公布了新标准----87 ANSI C 1990年,国际标准化组织接受了87 ANSI C , 把它作为 ISO C 的标准,也就是我们常说的C89,是目前应 ...
- C语言规范:C89、C90、C95、C99
本文转载 [K&R C] 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了<The C Programming Language>的第一版 ...
- C语言规范:C89、C90、C95、C99及C89和C99区别
[K&R C] 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了<The C Programming Language>的第一版(按照惯例 ...
- C语言规范:C89,C90,C95,C99
本文转载 [K&R C] 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了<The C Programming Language>的第一版 ...
- C语言的C89、C90、C99和C11标准,你能区分吗?
C89是ANSI组织在80年代制定的标准. C90是ISO组织接受C89标准在90年代发布的标准,其实与C89一样. C99是上述两个组织于90年代发布的标准. C11是2011年发布的标准. 你明白 ...
- C语言拾遗-C语言基础-C89、C99与C11
摘要:我们今天使用的 Windows.Linux.Mac OS 等操作系统都是由一种叫做 Unix 的系统演化而来.Unix 作为80年代主流的操作系统,是整个软件工业的基础,是现代操作系统的开山鼻祖 ...
- 【 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 ...
- C90、C99、C11——C语言的三套标准
C90 标准 由于C语言被各大公司所使用(包括当时处于鼎盛时期的 IBM PC),因此到了 1989 年,C语言由美国国家标准协会(ANSI)进行了标准化,此时C语言又被称为 ANSI C.而仅过一年 ...
- CLion怎么指定编译时使用C语言标准(C89/C90/ANSI C、C99、C11、C17/C18)?
文章目录 一.起因 二.解决办法 三.相关文章 一.起因 下载的CLion没有自带gcc编译器,需要自己指定,而自己指定的gcc的版本一般都比较高,以我自己Windows电脑上的gcc8.1为例,它默 ...
最新文章
- mysql 字段必填 属性_如何判断数据库中的字段是否具有必填属性(50分)
- python假设产品列表如下请首先打印出商品列表_Python列表练习题
- [新产品发布|推广] 赠书活动来了,参与有机会得《产品经理那些事儿》图书!...
- 编码服务正在步入云端
- SAP Spartacus 服务器端渲染文件 server.js 和构建后的 main.js 对比
- jest忽略如何添加忽略_大多数人忽略的基本家庭维护任务
- #1406 data too long for column '' at row 1
- 【翻译】Siesta事件记录器入门
- 使用Spring Security安全控制
- 高清成主流 十大最受用户关注摄像头
- java 密码生成器_[Java小白]WIFI纯数字密码字典生成器
- 27_iOS干货19之网络4_在线http/https素材资源
- PMP考试-计算题公式汇总-(第6版)
- NUCLEO开发板:STM32 st-link驱动程序错误
- 使用pktgen-dpdk和l2fwd测试RFC2544
- 基于移动终端的增强现实技术方案(已实现)
- 计算机软件操作试题多选,2016职称计算机考试WPS_Office多选试题及答案
- S2JH 自动审计@Audited 的问题
- ABAP中时间戳的处理
- 关于用户名登录的问题
热门文章
- 进制转换(C++):十六进制、二进制、十进制(附源代码)
- 微信小程序调用新闻类API
- 关于ArcGIS中选择属性值为空的语句
- 仿淘宝,天猫评分效果
- 淘宝“1元包邮”促销存陷阱 客户信息被卖家套取并转卖,你知道吗?
- 在多声卡的情况下使用修改注册表的方法设置默认声卡
- 中科大软件学院-软件测试-实验4-web性能测试-Microsoft Web Application Stress Tool安装(win10下)
- 哪些学校不让用matlab,新一轮制裁?部分高校被禁止使用matlab,科学无国界就是一句笑话...
- VMware 15 出现的EFI VMware Virtual SCSI Hard Drive(0,0) …. unsuccessful、Directory “EZBOOT“ not found问题
- uni-app 不用onShow返回上一页刷新数据