基础知识笔记(一)——程序的编译、链接、执行

目录

C语言 程序的编译、链接、执行

程序的两种环境:

一、翻译环境

1.预编译

2.编译

3.汇编

4.链接

二、执行环境

动态链接库


C语言 程序的编译、链接、执行

C语言 程序的编译、链接、执行_c代码编译,链接,运行过程-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/kjl167/article/details/124157077

程序的两种环境:

一、翻译环境

1.预编译

C语言 预编译详解_c语言预编译-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/kjl167/article/details/124218564?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170960720916800188592185%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170960720916800188592185&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-124218564-null-null.142%5Ev99%5Epc_search_result_base4&utm_term=%E9%A2%84%E7%BC%96%E8%AF%91&spm=1018.2226.3001.4187

预编译:源代码文件(.c)进行预编译处理生成预编译文件(.i)
功能:

  1. 执行预处理指令,如: #include 、#define
  2. 删除所有注释

条件编译:满足条件编译某些代码,不满足条件不编译某些代码

只用于调试程序的语句不应该出现在程序的产品版本中,但我们可能并不想把这些语句从源代码中删除,因为在需要一些维护性修改时,可能需要重新调试这个程序,此时还需要这些语句,条件编译可以实现这个目的。

2.编译

编译:将预编译后的文件编译为汇编代码
功能:

  1. 语法分析
  2. 词法分析
  3. 语义分析
  4. 符号汇总(汇总全局符号,如全局变量、函数名)
3.汇编

汇编:把汇编代码转换为机器指令(二进制指令)的目标文件

4.链接

链接:将多个目标文件和函数库链接为可执行程序
功能:

  1. 合并段表
  2. 符号表的合并和重定位

文件后缀名约定
C语言标准没有对文件后缀名进行规定,但在大多环境下有一套约定的文件后缀名
.h为后缀名的文件为C语言头文件
.c为后缀名的文件为C语言源代码文件
.i为后缀名的文件,是预编译后的C语言文件
.s为后缀名的文件,是编译过后的汇编代码文件
.o为后缀名的文件,是汇编后的目标文件(机器指令文件也称为二进制指令文件)。windows系统中目标文件以.obj为后缀名
.out为后缀名的文件,是多个目标文件与函数库链接之后的可执行程序。windows系统中以.exe为后缀名

二、执行环境

1.程序必须载入内存中。在有操作系统的环境中:一般这个由操作系统完成。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成
2.调用main函数运行
3.开始执行程序代码。这个时候程序将使用一个运行时堆栈(stack),存储函数的局部变量和返回地址。程序同时也可以使用静(static)内存,存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。
4.终止程序,可以是正常终止main函数;也有可能是运行错误终止

动态链接库

http://t.csdnimg.cn/Ndde7icon-default.png?t=N7T8http://t.csdnimg.cn/Ndde7

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

差点意思的鸭鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值