原文首发在我的公众号codeallen,欢迎关注

C语言标准的变迁(最全版本)

前言

C语言于1972年11月问世,1978年美国电话电报公司(AT&T)贝尔实验室正式发布C语言,1983年由美国国家标准局(American National Standards Institute,简称ANSI)开始制定C语言标准,于1989年12月完成,并在1990年春天发布,称之为ANSI C,有时也被称为 C89 或 C90。

C语言是一门通用的,模块化,程序化的编程语言,被广泛应用于操作系统和应用软件的开发。由于其高效和可移植性,适应于不同硬件和软件平台,深受开发员的青睐。

C语言早期发展

1969-1973年在美国电话电报公司(AT&T)贝尔实验室开始了C语言的最初研发。根据C语言的发明者丹尼斯·里奇 (Dennis Ritchie) 说,C 语言最重要的研发时期是在1972年。

说明:丹尼斯·里奇(Dennis Ritchie),C语言之父,UNIX之父。1978年与布莱恩·科尔尼干(Brian Kernighan)一起出版了名著《C程序设计语言(The C Programming Language)》,现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。2011年10月12日(北京时间为10月13日),丹尼斯·里奇去世,享年70岁。

C语言之所以命名为C,是因为C语言源自Ken Thompson发明的 B语言,而B语言则源自BCPL语言。

C语言的诞生是和UNIX操作系统的开发密不可分的,原先的UNIX操作系统都是用汇编语言写的,1973年UNIX操作系统的核心用C语言改写,从此以后,C语言成为编写操作系统的主要语言。

K&R C(C89)

1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)出版了一本书,名叫《The C Programming Language》(中文译名为《C程序设计语言》)。这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&R C”。

1988年丹尼斯·里奇(Dennis Ritchie)和布莱恩·科尔尼干(Brian Kernighan)修改此书,出版了《The C Programming Language》第二版,第二版涵盖了ANSI C语言标准。第二版从此成为大学计算机教育有关C语言的经典教材,多年后也没再出现过更好的版本。

ANSI C 和 ISO C的关系

1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。

为统一C语言版本,1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,来制定C语言标准。1989年C语言标准被批准,被称为ANSI X3.159-1989 “Programming Language C”。这个版本的C语言标准通常被称为ANSI C。又由于这个版本是 89 年完成制定的,因此也被称为 C89。

后来 ANSI 把这个标准提交到 ISO(国际化标准组织),1990年被 ISO 采纳为国际标准,称为 ISO C。又因为这个版本是1990年发布的,因此也被称为C90。

ANSI C(C89) 与 ISO C(C90)内容基本相同,主要是格式组织不一样。

因为 ANSI 与 ISO 的C标准内容基本相同,所以对于C标准,可以称为ANSI C,也可以说是ISO C,或者 ANSI / ISO C。

注意:以后大家看到 ANSI C、ISO C、C89、C90,要知道这些标准的内容都是一样的。

目前,几乎所有的开发工具都支持 ANSI / ISO C 标准。是C语言用得最广泛的一个标准版本。

C90

在1990年,ANSI C标准(带有一些小改动)被美国国家标准协会采纳为ISO/IEC9899:1990。这个版本有时候称为C90。因此,C89和C90通常指同一种语言。

C99

在ANSI C标准确立之后,C语言的规范在很长一段时间内都没有大的变动。1995年C程序设计语言工作组对 C语言进行了一些修改,成为后来的1999年发布的 ISO/IEC 9899:1999标准,通常被成为C99。

但是各个公司对C99的支持所表现出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的时候,微软和Borland却似乎对此不感兴趣。

说明:GCC(GNU Compiler Collection,GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器。

综上所述,目前广泛使用的C语言版本是 ANSI / ISO C,最经典的C语言教材是《C程序设计语言(The C Programming Language) 第二版》。

C11

在2011年12月,ANSI 采纳了 ISO/IEC 9899:2011 标准。这个标准通常即C11,它是C程序语言的现行标准。

C语言对其它语言的影响

很多编程语言都深受C语言的影响,比如C++(原先是C语言的一个扩展)、C#、Java、PHP、Javascript、Perl、LPC和UNIX的C Shell等。

也正因为C语言的影响力,掌握C语言的人,再学其它编程语言,大多能很快上手,触类旁通,很多大学将C语言作为计算机教学的入门语言。

支持 ANSI C 的编译器

目前最流行的C语言编译器有以下几种

● BorlandTurbo C 或称 Turbo C

● GNU CompilerCollection或称GCC

● Microsoft C

● ARM RealView

C语言标准的变迁(最全版本)相关推荐

  1. DEDECMS全版本gotopage变量XSS ROOTKIT 0DAY

    影响版本: DEDECMS全版本 漏洞描叙: DEDECMS后台登陆模板中的gotopage变量未效验传入数据,导致XSS漏洞. \dede\templets\login.htm 65行左右 < ...

  2. ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程命令执行漏洞

    ThinkPHP 5.0.x.5.1.x.5.2.x 全版本远程代码执行漏洞 漏洞概述: ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架.借鉴Struts框架的Action对象,同 ...

  3. thinkphp5运行原理_ThinkPHP5.1~5.2全版本远程代码执行高危漏洞预警

    漏洞综述 关于ThinkPHP ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,其借鉴了国外很多优秀的框架和模式,包括使用面向对象的开发结构和MVC模式,融合了Struts的思想和 ...

  4. [转载] --- Fastjson1.2.68版及以下全版本远程代码执行漏洞通告

    再这样,真的要放弃fastjson了 [安全通告]Fastjson <=1.2.68全版本远程代码执行漏洞通告 尊敬的腾讯云用户,您好! 近日,腾讯云安全运营中心监测到,Fastjson < ...

  5. Memcached未授权访问漏洞记录(CVE-2013-7239、危害级别全版本、端口:11211)

    Memcached介绍 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitz ...

  6. emlog模板 超帅的资源娱乐网模板 全版本兼容 修复各种bug

    介绍: emlog5.3.1-6.0.1全版本兼容 文字广告有动态效果 文字广告在index.php第12行开始 修复了各种bug 友联在 后台-链接 添加 网盘下载地址: http://kekewa ...

  7. 大刚二开emlog模板超级帅-全版本兼容-修复各种bug

    简介: 大刚二开emlog模板超级帅,全版本兼容,修复各种bug,此模板为大刚资源网二开模板,emlog5.3.1+6.0.1全版本兼容,文字广告在index.php第12行开始 文字广告有动态效果, ...

  8. 小米获京东自营安卓平板销量冠军 小米平板5 Pro全版本降100元

    小米平板官方微博公布,小米取得京东自营2月安卓平板品类销量第一佳绩.作为小米时隔三年精心打磨的安卓平板,小米平板5系列不仅颜值在线,且拥有旗舰的硬件配置以及媲美苹果的系统生态体验,上市后一直深受消费者 ...

  9. 小米获京东自营安卓平板销量冠军 小米平板5 Pro全版本闪降100元

    3月4日,小米平板官方微博公布,小米取得京东自营2月安卓平板品类销量第一佳绩.作为小米时隔三年精心打磨的安卓平板,小米平板5系列不仅颜值在线,且拥有旗舰的硬件配置以及媲美苹果的系统生态体验,上市后一直 ...

最新文章

  1. 监控haproxy的脚本
  2. 03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池
  3. dio设置自定义post请求_Flutter Dio简单二次封装和自定义Header
  4. Linux Shell编程之脚本执行方式
  5. 贪心---leetcode-376摆动序列
  6. mysql数据库information_schema库中的表说明
  7. 为了测试自动驾驶,福特将车带到了一个仿造城市
  8. 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)
  9. 企业安全管理的内外合规之ISO27001标准详解
  10. [iOS]Mac系统下安装windows共享打印机采坑记
  11. Apollo.Photonics.FOGS.BG.v3.2(以Bragg光栅原理为基础建立的一款光纤设备模拟及优化软件)
  12. 数字逻辑电路—全减器的实现
  13. matlab中@的用法
  14. 安全网站导航 farmsec
  15. 如何将pdf转化成word文档呢?
  16. 程序员加油站,不是人人都懂的学习要点
  17. 新东方雅思词汇(List 11 ~ List 15)
  18. HDF文件转Tif 温室气体 python代码
  19. 天涯明月刀7月4号服务器维护,8月4日服务器例行维护公告
  20. c++沙盒小游戏1.0

热门文章

  1. 北邮 2009网研复试题 六选四(回忆版)
  2. 2404 Super Prime(欧拉筛素数)
  3. 损失函数改进之Large-Margin Softmax Loss
  4. 受累光伏行业低迷“旧账” 福斯特计提资产减值准备
  5. 4.1 理解层叠分类器的检测原理
  6. Android微信智能心跳方案 (转)
  7. matlab中ss函数_matlab ss函数 tf函数
  8. 小学计算机课第二课堂活动总结,小学第二课堂活动总结4篇
  9. 工作占用了太多私人时间_职场谋略:下班后领导总发微信占用私人时间,怎么应对?...
  10. 华云大咖说 | 安超信创桌面云金融行业解决方案