首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

C Primer札记之概述

2012-11-26 
C Primer笔记之概述C Primer笔记之概述计算机的运行方式 CPU的工作一般来说就是从内存中取出指令并执行该

C Primer笔记之概述

C Primer笔记之概述

计算机的运行方式

 

CPU的工作一般来说就是从内存中取出指令并执行该指令,然后再取出下一条指令并执行。由于CPU的运算速度比内存快的多。所以,增加了寄存器,当CPU运算过程中,会预先把数据从内存中取至寄存器中。所以CPU一般是直接从寄存器中取数据。

  计算机中存储的一切内容都是数字。数字是以数字存储的,字符也是以数字形式存储的,每个字符有一个数字码。计算机装载至寄存器中的指令也是以数字形式存储的,指令集中的每条指令具有一个数字代码。计算机程序也必须以这种数字指令代码(或称)机器语言来表示。

 

明白了计算机的运行方式后,那如果希望计算机做一件事,就必须提供特定的指令表,确切的告诉计算机要做的事及如何去做。就必须以一种计算机可以直接理解的语言(指令集)来创建程序。

 

因此就出现了C这样的高级语言,就不必用数字代码表示指令也更接近人的思维方式。但是机器并不理解高级语言,所以必须将高级语言转换成机器语言,就用到了编译。

 

目标代码文件可执行文件和库

 

 C编程的基本策略是使用程序将源代码文件转换成可执行文件,此文件包含可以运行的机器语言代码。C分两步完成这个工作:编译和连接。编译器将源代码转换成中间代码,链接器将此中间代码与其他代码相结合生成可执行文件。

 中间文件的形式可以有多种选择,最一般的选择,是将源代码转换成机器语言代码,将结果放在一个目标代码文件中。虽然目标代码文件包含机器代码,但该文件还不能运行,目标文件包含源代码文件的转换结果,但还不是一个完整的程序。

目标代码文件所缺少的第一个元素是启动代码,此代码相当于程序与操作系统的接口。

所缺少的第二个元素是库程序代码,如printf(),函数指令实际代码是存储在另一个库文件中,库文件中包含了许多函数的目标代码。

链接器是将这3个元素(目标代码,系统的标准启动代码和库代码)结合在一起,并将它们存放在单个文件,即可执行文件。对库代码来说,链接器只从库中提取使用的函数的代码。

 

简言之,目标文件和可执行文件都是机器语言指令组成,但目标文件只包含所编写的代码转换后成的机器语言,而可执行文件还包含所使用的库例程以及启动代码的机器代码。

 

注意:在一些系统上必须分别运行编译和链接程序。而在另一些系统上,编译器可以自动启运链接器,所以只须给出编译命令即可。

 

所以不同的编译环境使程序具有不同的启动代码及不同的库代码。

 

Unix 编译环境

 

编辑源文件,

CC 源文件

则会生成a.out 的新文件,此文件是包含源文件编译结果的可执行文件。要运行该文件则./a.out

 

如果希望保存该结果(a.out)则必须对其进行重命名,否则该文件会被下次编译结果覆盖。

 

语言标准:

 

只所以要了解语言标准,是因为现在许多书是基于不同的标准写的,说法规则有些差别。只有知道它是基于哪个标准的才能明白,这个地方为什么这么写。

 

ANSI/ISO 标准:

 

美国国家标准化组织(ANSI)在1989年(ANSI C)定义了语言和一个标准C库,国际标准化组织(ISO)在1990年采用了一个新标准(ISO C),ISO C 和ANSI C实际上是同一个标准,因为ANSI版本是首次出现的,所以一直沿用ANSI C这一术语。

 

C99标准:

 

 

热点排行