分类 - C语言

2019-10-27 15:47:56    55    0    0

Chapter 1: C语言起源与概述

起源

C语言最初是由丹尼斯.里奇在贝尔实验室为开发UNIX操作系统而设计的。C语言是以B语言为基础的。

设计目标

提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

跨平台特性

以一个标准规格写出的C语言程序可在许多电脑平台上编译,甚至包含一些嵌入式处理器以及超级电脑等作业平台。

C语言标准

ANSI C是由美国国家标准协会(ANSI)及国际标准化组织(ISO)推出的关于C语言的标准,用于避免各开发厂商用的C语言语法产生差异。
title
title

C语言能做什么

C语言常用于操作系统开发、嵌入式开发、数据库管理系统、语言编译器等。

优点

  • 高度可移植性:不改动或只做很小改动的情况下就可以把C语言的程序运行在不同平台。相对于汇编语言和机器代码,C语言以更抽象的的方式描述行为,不受限于特定CPU或指令集(不同CPU系列使用的指令集和编码格式不同)。
  • C语言很小:可以嵌入几乎所有现代微型处理器中,从冰箱到闹钟。
  • 学习其他语言的基础:几乎所有编程语言都由C实现,或者有和C语言相似的语法和逻辑规则,学会C语言可以很快地学会其他语言。

缺点

  • 运行时间:没有运行时间检查机制。
  • 面向过程:不支持面向对象编程,这也是创造C++的原因。
  • 不安全:指针是C语言的一大特色,可以说是C语言优于其他语言的一个重要原因,但也就是因为它有指针,可以进行靠近硬件的操作,所以带来很多不安全的因素。

C语言编译器

不同计算机使用不同的机器语言方案,C编译器负责把C代码翻译成特定的机器语言。此外,C编译器还将源代码与C库的代码合并成最终的程序(更准确地说是链接器,但大多数系统中编译器运行链接器)。编译器还会检查C语言程序是否有效,如果C编译器发现错误就不生成可执行文件并报错。
编译器把源代码转换成中间代码,链接器把中间代码和其他代码合并,生成可执行文件。一般C编译器把源代码转换为机器语言代码,并把结果放在目标代码文件中,虽然目标代码中包含机器语言代码,但是并不能直接运行该文件,因为目标文件中储存的是编译器翻译的源代码,并不是完整的程序。目