C语言编译原理是什么?

Python042

C语言编译原理是什么?,第1张

编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。

1、预处理阶段:

主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)

2、汇编阶段:

插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。

3、编译阶段:

将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。

4、链接阶段:

在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。

谭浩强系列的c语言教程,都是教c语言的入门知识和编一些小程序(是程序而不是软件)。要想设计软件,可不是那么简单的,一个软件的设计,语言只是其中的一个组成部分,还需要有好的思路和精密的设计方法等等。

如果想用c语言设计软件,首先一定要把基础学精。然后才可以试着设计软件。

另外,c语言设计程序,主要原理是先构思一个算法,然后将算法转化为计算机语言(个人观点,仅供参考)。

和汇编语言相比,C语言属于高级语言,现在嵌入式中常用到C语言编程,因为它可以直接对硬件编程。如提问所说的,用最抽象,最易懂的语言形容C语言,做不到,因为C语言比逻辑上比汇编语言简单,但是涉及到的知识点比较多,总的来说:有变量,常量,条件语句,循环语句,位操作,文件操作。记住:C语言不必死记硬背,和英语没什么关系,学习过就会明白了,C语言就那么几种语句,多练习,自然而然就记住了。