关于C语言的理解和编译过程

一.关于c语言的理解
从hello.c了解C程序

#include<stdio.h>
int main()
{
  printf("Hello world!");
  return 0;
}

1.#include<>表示包含的意思,意思是把里面的东西写到程序中来
2.stdio.h–叫头文件,我们在使用变量或者函数时都需要进行定义和声明。我们能够直接使用一些基本的数据类型和函数,是因为stdoi.h里面就包含了int long 等等数据类型,printf(),scanf()等等函数的定义声明。
3.int main()=int main(void),表示不带参数,有返回值。
4.void main()没有返回值。
二。程序的编译过程
这里主要讲linux下的GCC的C程序的编译过程。
程序的编译主要分为4个过程(预处理、编译、汇编 和链接)。
1.后缀文件
.c是C语言源程序
.a是由目标文件构成的档案库文件
.i是经过预处理的C文件
.o是经过编译的目标文件
.s是汇编文件
2.预处理
用gcc -E hello.c -o hello.i 命令输出经过预处理后的文件,用vi hello.i打开,如图(只有部分)可见stdio.h的内容被包含了进来这里写图片描述
3.编译–就是要把预处理的程序生成汇编程序。我们用高级语言写程序,是为了方便移植,但我们在编译的时候还是要转换为汇编,然后再转为计算机语言。用gcc -S hello.i -o hello.s输出汇编文件。vi hello.s打开(部分),显然程序被转换为汇编程序。这里写图片描述
4.汇编–把汇编文件生产目标文件。gcc -c hello.s -o hello.o
5.连接–把目标文件与库文件相连生成可执行文件。库文件就是一些已经写好的函数的实现方法。比如printf()函数。gcc hello.o -o hello

6.然后执行就可以了,编译的过程大概就这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值