c语言各种版本

gcc指定不同版本c语言的选项:

GNU 89(gnu对C89做的修改版本) : 默认,-std=gnu89

ANSI, ISO C90: -ansi, -std=c89(ANSI C(C89) 与 ISO C(C90)内容基本相同,主要是格式组织不一样)

ISO C99: -std=c99

GNU 99(gnu对C99做的修改版本): -std=gnu99

C语言在19世纪70年代初问世,1978年美国电话电报公司(AT&T)贝尔实验室正式发布C语言,后由美国国家标准局(American National Standards Institute,简称ANSI)制定了一套C语言标准,于1983年发表,通常称之为ANSI C。


C语言之父——里奇

在学习C语言之前,我们先了解一下C语言的历史。

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

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语言用得最广泛的一个标准版本。

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)》。

资料来源:http://see.xidian.edu.cn/cpp/html/1.html

时间: 2024-08-29 18:28:31

c语言各种版本的相关文章

如何在Visual studio中修改所使用C#语言的版本

有时候,我们需要在Visual studio里修改当前使用的C#语言的版本,具体修改方法如下:在solution explorer中右键工程->选择属性->切换到Build页->点击'Advanced...'按钮->在弹出的Advanced Build Settings对话框中从Lanuage Version下拉列表框中选择你需要的C#语言版本,请参照下列图示.此外不同版本的VS默认的C#版本如下: Visual Studio 2015: C# 6.0 Visual Studio

go语言最新版本 下载地址

国内官方网站无法打开.放在了百度云中,定期会更新: 链接:http://pan.baidu.com/s/1dD59duh 密码:46ek 备用地址:http://pan.baidu.com/s/1hq1mrDM go语言最新版本:1.5.1. 19 August 2015.

微软的R语言发行版本MRO及开发工具RTVS

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软在收购R语言的开发商后,也独立发行或在自己的产品中集成了R语言,这里就介绍下它们包括开发工具RTVS. R是世界上最强大的统计计算.机器学习和图形化语言/平台,同时伴有一个众多用户.开发者和贡献者的全球化社区.R在我之前从事的环境分析领域也被广泛使用,据朋友说一个从环境专业毕业的博士就因为R用得熟还成功进入Facebook成为数据科学家. 众所周知,微软去年初收购了R语言的开发商Revol

C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)

历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA发布的最新规范,C# 6.0还是草案阶段,C# 7.1是微软当前提供的最新规范. 这里仅仅列个提纲,由于C# 5.0是具有ECMA标准规范的版本,所以选择C# 5.0作为主要版本学习,并专题学习C# 6.0,7.0版本新特性. C#语言规范GitHub库参见:https://github.com/

C# 语言历史版本特性(C# 1.0到C# 8.0汇总)

历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA发布的最新规范,C# 6.0还是草案阶段,C# 7.1是微软当前提供的最新规范. 这里仅仅列个提纲,由于C# 5.0是具有ECMA标准规范的版本,所以选择C# 5.0作为主要版本学习,并专题学习C# 6.0,7.0版本新特性. C#语言规范GitHub库参见:https://github.com/

基于jQuery.i18n.properties实现前端网站语言多版本

我是参考播客做了个demo:http://blog.csdn.net/aixiaoyang168/article/details/49336709 jQuery.i18n.properties采用.properties文件对JavaScript进行国际化.jQuery.i18n.properties插件首先加载默认的资源文件(strings.properties),然后加载针对特定语言环境的资源文件(strings_zh.properties),这就保证了在未提供某种语言的翻译时,默认值始终有效

第一课 T语言关键字(版本TC5.0)

关键字 TC综合开发工具的语法里包含了大量的关键字,而且对TC综合开发工具支持的关键字都做了亮色处理,以便大家在写脚本的时候容易区分. 关键字在使用的时候,都有特定的作用,不能作为变量名.函数名等等使用,如果使用了,编译的时候会出现错误提示,请大家记住这点. 关键字解释 关键字 描述 英文 中文 var 变量 用来定义变量的关键字 function end 功能 结束 用来自定义功能的关键字 if elseif else end 如果 否则如果 否则 结束 流程语句 if:主要是用来判断某个条件

C#语言各个版本特性(三)

三.查询集合 1.找出List<Product>列表中符合特定条件的所有元素 C#1.1 查询步骤:循环,if判断,打印 product类 1 using System.Collections; 2 using System.ComponentModel; 3 4 namespace Chapter01.CSharp1 5 { 6 [Description("Listing 1.01")] 7 public class Product 8 { 9 string name;

C# 语言规范_版本5.0 (第0章 目录)

C# 语言规范 版本5.0 注意 © 1999-2012 Microsoft Corporation.保留所有权利. Microsoft.Windows.Visual Basic.Visual C# 和 Visual C++ 是 Microsoft Corporation 在美国和/或其他国家/地区的注册商标或商标. 本文提及的其他产品和公司名称可能是其各自所有者的商标. 目录 1. 介绍......................................................