返回介绍

1.1 C 语言的发展史

发布于 2025-04-11 22:32:50 字数 2327 浏览 0 评论 0 收藏 0

千里之行,始于足下。马上要开始 C 语言的旅程了,突然想起我还是初学者的时候,曾经翻阅了大量的 C 语言入门书籍,千篇一律,都是在刚开始的时候讲解一些概念、理论和很多的术语。而我自小喜欢数理化,对文科不感冒,尤其是对需要大量死记硬背的知识感到非常头疼。所以看着这些概念、理论、术语,没多久就会有头昏眼花、想睡觉的感觉。结果是大部分的内容都如过眼云烟,随风而去了,不过有两点倒是奇迹般地记在脑海中了,到底是哪两点呢?

第一点是 C 语言的创始者。中国有句老话是“吃水不忘挖井人”,既然决定学习 C 语言了,怎么能不知道 C 语言的创始者是谁呢?好了,直接告诉你,是来自贝尔实验室的丹尼斯·里奇(Dennis Ritchie),美国人,生于 1941 年。他在 1972 年发明了 C 语言,被尊称为 C 语言之父。但非常遗憾的是,2011 年 10 月 12 日他永远地离开了我们,图 1.1 是丹尼斯·里奇的照片。

图 1.1 丹尼斯·里奇

第二点是 C 语言的标准。为什么非要了解 C 语言的标准呢?其实不难理解,想想当年秦始皇统一中国后,为何立即进行了“书同文,车同轨,统一度量衡”的改革?因为只有使用同一种文字、同样的尺度、同一种标准,才能让国人彼此看得懂,交流更方便,才能更好地促进社会的发展。同样如此,C 语言不是给一个人使用的,其使用者包括大量的开发者、维护者、管理者,以及 C 语言编译器的实现者,如此多的使用者,如果没有统一的标准遵循,你这么写,他那样用,结果就是你写的东西他看不懂,他写的东西你也看不懂,那将是多么的可怕。有了标准之后,大家都按同一标准干活,就非常便于大家交流,从而推动了 C 语言更快更好地发展。好了,下面就来学习一下 C 语言的这些标准。什么?这些标准?是的,没有事物是一成不变的,C 语言从诞生到现在已过了半个世纪,随着 C 语言的不断发展,经历了以下几个标准制定时代。

1.“K&R”标准

1978 年,丹尼斯·里奇与布莱恩·科尔尼汗联合出版了名为《C 程序设计语言》(The C Programming Language)的著作,这本书被 C 语言开发者称为“K&R”,很多年来被当作 C 语言的非正式的标准说明,人们称这个版本的 C 语言为“K&R C”。

2.“C89”标准

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

3.“C90”标准

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

4.“C99”标准

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

5.“C11”标准

2007 年,C 语言标准委员会又重新开始修订 C 语言,到了 2011 年正式发布了 ISO/IEC 9899:2011 标准,简称为“C11”标准。

读者可能有些疑惑,这么多标准,到底该用哪一个呢?其实“K&R”是非正式标准,而且年代久远,现在基本不用了;“C89”和“C90”属同一个标准,即它们内容一致,只是在不同的时间被两家不同的机构认证罢了,这个标准一直用到现在;目前的主流应该是“C99”标准,现在已开始渐渐向这个标准过渡,不过仍有某些编译器对这个标准支持得不够好,所以用的时候还要注意一下;“C11”是现行最新的 C 语言标准,但还没有完美支持的编译器。本书采用的是 GCC 编译器,其中一个原因就是它对“C99”标准的支持相对较好。至于什么是编译器?别急,后面的章节会讲到。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。