2016 - 2024

感恩一路有你

一个c程序是如何工作的(C语言程序怎么运行?)

浏览量:4690 时间:2023-01-30 18:58:57 作者:采采

一个c程序是如何工作的(C语言程序怎么运行?)

c程序的工作过程?

1 .使用编辑器创建并保存一个名为hello.c的文本文件可以说hello程序的生命周期就是从这个时候开始的,这也是因为这种形式更容易让人理解。但是,为了在计算机上运行这个程序,每一条C语句都必须被其他程序转换成一系列低级的机器语言指令,然后计算机根据可执行的目标程序将这些指令打包,以二进制磁盘文件的形式存储。

2.预处理阶段:cpp根据#开头的命令修改原C程序,比如将# inclultstdio.hgt中的stdio.件写入hello.c中得到另一个程序保存在hello.i中。

3.编译阶段:ccl将文本文件hello.i编译成hello.s,其中包含汇编语言程序。

4.汇编阶段:As将hello.s翻译成机器语言指令,将这些文件打包成一种叫做可重定位对象程序的格式,并将结果保存在hello.o中,这时如果我们用文本编辑器打开,就会看到一堆。

5.链接阶段:因为hello程序使用了pringtf函数。每个C编译器都会提供标准库中的函数。printf存在于printf.o中,这个文件必须合并到hC语言程序怎么运行?

运行C语言程序的编辑(输入程序代码,交给电脑)。编译(目标程序文件。obj)。就是把一种高级语言变成计算机能识别的二进制语言。计算机只知道1和0,编译器把熟悉的语言变成二进制。

编译器将源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成

一个C程序到完成运行要经过哪几个步骤?

Ld是链接器,链接成功返回0。一个C程序从代码到二进制文件的运行要经过预处理、编译、汇编、链接、加载和执行。

预处理后,C文件会完成宏替换等动作,编译会生成一个汇编文件(可以在gcc下添加参数-s生成),后缀为s。

在汇编步骤中,汇编程序将把汇编文件转换成*。o(低于*。o(linux)或*。obj(msvc)文件,这是目标文件。

链接器负责链接多个目标文件和库文件,得到二进制可执行文件,程序会被加载到内存中,在后续的加载阶段执行。

许多目标文件会引用其他目标文件中的变量或函数,这些变量或函数在*中称为符号。o.

有一个符号表。链接器的每个目标文件中的symtab。;参考文献。如果链接器在目标文件中找到需要引用到其他位置的符号(这里它被分成PC阶段)对于参考和绝对位置参考),它将找到被引用的符号,如果找到,则重新定位它。一般来说,我们使用的ide会将上述过程集成到一个简单的步骤中,我们经常可以 看不到其中生成的程序集文件和目标文件。如果我们不这样做。;如果不理解这些过程,我们可能会对ide 的错误报告。

文件 程序 阶段 hello 目标

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。