学习C语言,掌握完整的C语言体系非常重要!以下是我就梁老师课上所提重点进行拓展衍生。
本文是C语言第一章的整理拓展!有误的地方希望大家批评指正,不胜感激~
1、C语言之父是谁?
丹尼斯·里奇 同时也是为UNIX之父。他是美国计算机科学家,对C语言和其他编程语言、Multics和Unix等操作 系统的发展做出了巨大贡献。里奇在哈佛大学学习物理学和应用数学毕业,1967年他进入贝尔实验室,是朗讯技 术公司系统软件研究部门的领导人。1983年他与肯·汤普逊一起获得了图灵奖。理由是他们“研究发展了通用的操 作系统理论,尤其是实现了UNIX操作系统”。2011年10月9日去世,享年70岁。
1.1 C语言与UNIX有什么区别?
UNIX是操作系统,具有多任务,多用户的特征。其系统结构分为两部分,一为操作系统内核,一为系统外壳,前 者贴近硬件,后者贴近用户。而UNIX系统大部分是由C语言编写的,使系统更加易读、易移植、易移植。
C语言是程序设计语言,具有移植性。其与UNIX的标准C语言库函数都一样,就是系统相关区别。
2、C语言的特点有哪些?(丹尼斯为什么写C语言?为什么嵌入式开发中选择C语言作为开发语言?)
C语言特点:1、移植性好 2、能够直接访问硬件 3、运行效率高
2.1 什么是可移植性?什么可以称为移植性好?
移植性是指在任何机器上以及任何操作系统上都可以运行。
移植性好不是指程序原封不动就可以在另一台机器上运行,而是更换系统或机器时只需要改动一点就可以编译成 功了。
2.2 能够直接访问硬件的还有什么语言?与C语言有什么区别?
汇编语言。 指令集、寻址方式都不同。汇编语言是低级语言,不同的计算机有不同的汇编语言,不像C语言是 高级语言,可以实现跨平台操 作,而且C语言的移植性也强,程序可以在不同体系结构的计算机运行。
3、C语言的标准有哪些?
K&RC、C89、C99、C11.
3.1 它们之间的差别在哪里?
C89 随着 C 语言在多个领域的推广、应用,一些新的特性不断被各种编译器实现并添加进来。于是,建立一个新 的“无歧义、于具体平台无关的 C 语言定义” 成为越来越重要的事情。1983 年,ASC X3(ANSI 属下专门负责信息 技术标准化的机构,现已改名为 INCITS)成立了一个专门的技术委员会 J11(J11 是委员会编号,全称是X3J11),负 责起草关于 C 语言的标准草案。1989 年,草案被 ANSI 正式通过成为美国国家标准,被称为 C89 标准。
C99 1999 年,ANSI 和 ISO 又通过了最新版本的 C 语言标准和技术勘误文档,该标准被称为 C99 。这基本上是 目前关于 C 语言的最新、最权威的定义了。
更详细的可以去看此博客http://blog.csdn.net/xieyihua1994/article/details/51340354
3.2 gcc遵循的什么标准?
C99标准。