本文内容列表:
C语言源程序文件名后缀为.c。 C源程序经C编译器编译后,生成后缀为.OBJ的二进制文件,
然后一个叫做“链接器”的软件将这个.OBJ文件与C语言提供的各种库函数连接起来,生成后缀为.EXE的可执行文件。
用高级语言编写的程序称为“源程序”,用二进制代码表示的程序称为“目标程序”。为了将源程序转换成机器可以接受的目标程序,我们需要具有翻译功能的软件——“编译器”。每种高级语言都有其相应的编译器。
扩展信息
1。目标文件的扩展名是“.obj”(Windows) 或“.o”(Linux)。目标文件已经是机器指令,但是还不能运行,因为目标文件还没有解决函数调用问题。
2。可执行文件的扩展名为“.exe”。
程序文件名后缀为.c,编译后为.obj,链接后为.exe。
xx.h file.h一般包含.c文件中定义的同名变量、数组、函数的声明,以及.c需要外部使用的声明。
xx.c 文件。 c文件一般包含变量、数组、函数的具体定义。
1。预编译和头文件的预处理。
编译器在编译源代码时,会先编译头文件,保证每个头文件只编译一次。
在预处理阶段,编译器将c文件中引用的头文件的内容全部写入到c文件中。
2。词汇和语法分析(错误检查)。
3。编译(汇编代码,.obj 文件)。
转换为汇编代码,这个文件称为目标文件。后缀是.obj。
4。链接(二进制机器代码,.exe 文件)。
将汇编代码转换为机器代码并生成可执行文件。
扩展信息
注释
在编译过程中,.h 文件中的所有内容都会被写入包含它的 .c 文件中,并且所有 .c 文件都使用一个公共的 main 函数作为可执行程序的入口点。
将函数实现写在.h文件中仍然可以正常编译执行,这意味着.h内容最终全部写入了main.c文件中。
但出于逻辑、方便维护等一些目的,函数的声明一般写在.h文件中,函数的实现写在.c文件中。
选择C.”.exe”
分析如下:
编辑文件时,源代码的扩展名为.CPP,C++头文件的扩展名为.H。编译后的源程序文件被转换为扩展名为.obj 的目标文件。链接将一个或多个目标文件与程序所使用的库文件链接起来,形成一个可以直接在操作系统上运行的可执行程序.exe。
即整个过程分为:预编译、替换源代码中的宏、生成中间文件(文本,默认不保留)>>翻译成汇编代码(文本,默认不保留)> >由汇编器生成二进制文件(.obj)》串联为可执行文件(.exe)。
扩展信息
1。合集
目标代码生成是编译的最后阶段。目标代码生成器将经过语法分析或优化的中间代码转换为目标代码。目标代码有三种形式:
①可以立即执行的机器语言代码,所有地址都被重定位;
② 当需要执行待组装的机器语言模块时,连接加载器将其连接到某些正在运行的程序,并将其转换为可执行的机器语言代码;
③汇编语言代码必须经过汇编器编译才能成为可执行的机器语言代码。
目标代码生成阶段要考虑三个直接影响目标代码速度的问题:一是如何生成较短的目标代码;其次,如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;第三,如何充分利用计算机指令系统的特点来提高目标代码的质量。
2。高级编程语言C
程序编译
编译是指将编辑好的源文件翻译成二进制目标代码的过程。编译过程是由编译器(compiler)完成的。不同操作系统下使用各种编译器的命令并不完全相同,使用时要注意电脑环境。编译时,编译器首先检查源程序中的每条语句是否存在语法错误。当发现错误时,屏幕上会显示错误位置和错误类型信息。
这个时候需要再次调用编辑器来检查并修改错误。然后,再次编译,直到消除所有语法和语义错误。正确的源程序文件被编译后在磁盘上生成目标文件(后缀为.obj的文件)。
程序连接
编译后生成的目标文件是可重定位的程序模块,不能直接运行。连接是将目标文件与其他必要的目标程序模块(这些目标程序模块是单独编译生成的目标文件)以及系统提供的标准库函数连接起来,生成可运行的可执行文件的过程。利用C语言提供的连接程序(连接器)完成连接过程,并将生成的可执行文件(后缀名为.exe的文件)保存到磁盘中。
程序执行
程序连接后生成可执行文件,即可在操作系统的控制下运行。执行程序后如果达到了预期的目的,则C程序的开发完成。否则,需要进一步检查和修改源程序,并重复编辑。 - 编译-链接-运行的过程,直到得到预期的结果。
参考来源:百度百科:编译
百度百科:高级编程语言C