C 语⾔源代码编译全过程
⽰例代码:
流程图:
前提:
在计算中,任何的⾼级语⾔都不可以被计算机直接执⾏,都需要将⾼级语⾔转化成为计算机可以识别的计算机语⾔,所写的代码才可以执⾏。从此我们可以看出,⾼级计算机语⾔,并不是直接为计算机写的,⽽是为了程序员的⽅便。
编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。
1、预处理阶段:
主要⼯作是将头⽂件插⼊到所写的代码中,⽣成扩展名为“.i”的⽂件替换原来的扩展名为“.c”的⽂件,但是原来的⽂件仍然保留,只是执⾏过程中的实际⽂件发⽣了改变。(这⾥所说的替换并不是指原来的⽂件被删除)
2、汇编阶段:
插⼊汇编语⾔程序,将代码翻译成汇编语⾔。编译器⾸先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的⼯作,在检查⽆误后,编译器把代码翻译成汇编语⾔,同时将扩展名为“.i”的⽂件翻译成扩展名为“.s”的⽂件。
3、编译阶段:
将汇编语⾔翻译成机器语⾔指令,并将指令打包封存成可重定位⽬标程序的格式,将扩展名为“.s”的⽂件翻译成扩展名为“.o”的⼆进制⽂件。
4、链接阶段:
在⽰例代码中,改代码⽂件调⽤了标准库中printf函数。⽽printf函数的实际存储位置是⼀个单独编译的⽬标⽂件(编译的结果也是扩展名为“.o”的⽂件),所以此时主函数调⽤的时候,需要将该⽂件(即printf函数所在的编译⽂件)与hello world⽂件整合到⼀起,此时链接器就可以⼤显神通了,将两个⽂件合并
后⽣成⼀个可执⾏⽬标⽂件。c语言编译器怎么玩
后续: 将可执⾏⽬标⽂件加载到内存中,并运⾏,即可完成输出的动作。#include<stdio.h>
int main(){
printf(“hello world\n”);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论