C语言的优势与标准

目录

C语言概述

1.1 C语言的起源

1.2 使用C语言的理由

1.3 C语言标准

1.3.1 K&R C

1.3.2 ANSI C/C89标准

1.3.3 C99标准


C语言概述

        欢迎大家来到c语言的世界,c语言是一种强大的专业化的编程语言。

1.1 C语言的起源

        贝尔实验室的Dennis Ritchie在1972年开发了C,当时他正与ken Thompson一起设计UNIX操作系统,然而,C并不是完全由Ritchie构想出来的。它来自Thompson的B语言。

1.2 使用C语言的理由

        在过去的几十年中,c语言已成为最流行和最重要的编程语言之一。它之所以得到发展,是因为人们尝试使用它后都喜欢它。过去很多年中,许多人从c语言转而使用更强大的c++语言,但c有其自身的优势,仍然是一种重要的语言,而且它还是学习c++的必经之路。

        (1)高效性。c语言是一种高效的语言。c表现出通常只有汇编语言才具有的精细的控制能力(汇编语言是特定cpu设计所采用的一组内部制定的助记符。不同的cpu类型使用不同的汇编语言)。
如果愿意,您可以细调程序以获得最大的速度或最大的内存使用率。

        (2)可移植性。c语言是一种可移植的语言。意味着,在一个系统上编写的c程序经过很少改动或不经过修改就可以在其他的系统上运行。

        (3)强大的功能和灵活性。c语言强大而又灵活。比如强大灵活的UNIX操作系统便是使用c编写的。其他的语言(Perl、Python、BASIC、Pascal)的许多编译器和解释器也都是用c编写的。结果是当你在一台Unix机器上使用Python时,最终由一个c程序负责生成最后的可执行程序。

1.3 C语言标准

1.3.1 K&R C

        起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis FRitchie)出版了一本书,名叫
《The C Programming Language》。这本书被C语言开发者们称为K&R,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为K&RC。

        K&RC主要介绍了以下特色:结构体(struct)类型;长整数(long int)类型;无符号整数
(unsigned int)类型;把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处
理i=-10还是i=-10,使得处理上产生混淆。即使在后来ANSIC标准被提出的许多年后,K&RC仍然是许多编泽器的最准要求,许多老旧的编译器仍然运行K&RC的标准。

1.3.2 ANSI C/C89标准

        1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。1983年,美国国家标准协会(ANSI)成立了一个委员会X3J11,来来制定C语言标准。

        1989年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-1989
”Programming LanguageC“。因为这个标准是1989年通过的,所以一般简称C89标准。有些人
也简称ANSIC,因为这个标准是美国国家标准协会(ANSI)发布的。

        1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C:89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990-Programming languages--C[5]。因为J比标准是在1990年发布
的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSIC89标
准完全等同。
        1994年,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C89标准修订版,名叫ISO/IEC9899:1990/Cor 1:1994[6],有些人简称为C94标准。
        1995年,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C89标准修订版,名叫ISO/IEC 9899:1990/Amd 1:1995-C Integrity[7],有些人简称为C95标准。

1.3.3 C99标准

        1999年1月,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C语言的新标准,名叫
ISO/IEC 9899:1999 - Programming languages-C,简称C99标准。这是C语言的第二个官方标准。

例如:

(1)增加了新关键字restrict,inline,_Complex,_Imaginary,_Bool
(2)支持long long,long double_Complex,float_Complex这样的类型
(3)支持了不定长的数组。数组的长度就可以用变量了。声明类型的时时候呢,就用inta[*]这样的写法。不过考虑到效率和实现,这玩意并不是一个新类型。

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值