C程序的运行

程序的翻译环境和执行环境:

翻译环境:在这个环境中,源代码被转化为可执行的机器指令

执行环境:在这个环境中,执行代码

程序的运行过程:
1、编译和链接(翻译环境)

      我们写出的代码文件叫做源代码,这样的源代码要经过编译和链接生成可执行文件才能真正执行。对源程序进行编译,生成二进制目标文件(.obj文件);编译所得到的二进制目标文件还不能供计算机直接执行,一个程序可能包含多个源文件,而编译时针对各个源文件的,必须把所有编译得到的目标文件链接装配起来,在与函数库链接形成一个整体,生成一个可供计算机执行的程序,叫做可执行程序。


2、执行代码(执行环境)

经过上面编译链接生成的可执行程序就可以直接运行了。

详解程序的编译过程:

对一个C程序进行编译,先用C编译系统提供的“预处理器”对程序中的预处理指令进行编译预处理,生成.i文件;

test.c->test.i(gcc -E test.c -o test.i  //预处理之后停下来,结果存放在test.i文件中)

对生成的.i文件进行检查,检查它是否有语法方面的错误,如果有,发出出错信息,如果没有,进而生成.s文件;

test.i->test.s(gcc -S test.i //编译完成之后停下来,结果存放在test.s之中)

将生成的.s文件转化为二进制代码(机器语言),生成目标程序.obj

test.s->test.o(gcc -c test.s //汇编完成之后停下来,结果存放在test.o中)

在Linux环境下,尝试编译下面的代码,查看各个生成的文件:

#include <stdio.h>
int main()
{
int i = 0;
for(i=0; i<10; i++)
{
printf("%d ", i);
}
return 0;
}











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值