C语言的执行过程

1. C语言的介绍

  • C语言是一门编译型的计算机语言,C语言的源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器的链接,生成二进制的可执行文件,可执行文件才能执行。

2. C语言的执行过程

  • C语言代码是放在.c为后缀的文件中的,要得到中间运行的可执行程序,中间要经过编译链接两个过程。
  • 每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件)
  • 多个目标文件和库文件经过链接器处理生成对应的可执行程序(.exe为后缀的文件)

3. 编译

  • 任务:编译主要处理单个源文件,将高级的C语言代码转化为机器可以理解的目标代码。它会检查源文件的语法错误、进行词法分析、语法分析和语义分析,然后生成对应的的目标文件(.obj)。
  • 作用范围:局限于单个源文件内部。比如有 test.c 和 add.c 两个源文件,编译时 test.c 的编译过程不依赖 add.c 的具体实现,只关注自身代码的正确性。

4. 链接

  • 任务:链接是把编译生成的多个目标文件(.obj文件)以及所需的库文件组合成一个可执行文件。它的主要工作是解析目标文件中的符号引用(比如函数调用和变量引用),找到这些符号在其他目标文件或库中的定义,并将它们正确连接在一起。
  • 作用范围:涉及多个目标文件以及库文件(链接库)之间的关联。例如,test.c 中调用了 add 函数, add 函数在 add.c 中定义,编译后生成 test.obj 和 add.obj,链接时会将 test.obj 中对 add 函数的调用与 add.obj 中 add 函数的实现关联起来。

5. 库文件(标准库和第三方库)

  • 标准库

1. 输入输出库: <stdio.h> ,提供如 printf (格式化输出到标准输出)、 scanf (格式化从标准输入读取数据)等函数。

2.字符串处理库: <string.h> ,包含 strcpy (字符串复制)、 strcmp (字符串比较)、 strlen (计算字符串长度)等函数。

3.数学库: <math.h> ,提供 sqrt (计算平方根)、 sin (正弦函数)、 cos (余弦函数)、 pow (幂运算)等数学相关函数。

4.标准库函数通用工具库: <stdlib.h> ,包含 malloc (动态内存分配)、 free (释放动态分配的内存)、 atoi (将字符串转换为整数)等函数。

5.时间日期库: <time.h> ,有 time (获取当前时间)、 localtime (将时间转换为本地时间结构)、 strftime (格式化时间为字符串)等函数。

  • 第三方库

6. 总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值