c语言day1.可执行程序是如何生成的
可执行程序是如何生成的 编译 { *.h 文件 *.c 文件 → 预处理 *.i 文件预处理后的文件 → 编译 *.s 文件汇编代码 → 汇编 *.o 文件目标文件 → 链接 可执行程序 \text{可执行程序是如何生成的} \\[6pt] \text{编译} \left\{ \begin{aligned} \text{*.h 文件} \\ \text{*.c 文件} \end{aligned} \right. \xrightarrow{\text{预处理}} \text{*.i 文件预处理后的文件} \xrightarrow{\text{编译}} \text{*.s 文件汇编代码} \xrightarrow{\text{汇编}} \text{*.o 文件目标文件} \xrightarrow{\text{链接}} \text{可执行程序}可执行程序是如何生成的编译{*.h文件*.c文件预处理*.i文件预处理后的文件编译*.s文件汇编代码汇编*.o文件目标文件链接可执行程序一、初始输入文件.c文件C 语言源文件就是你写代码的文件比如之前的main.c里面存放具体的函数逻辑、可执行代码.h文件头文件二、第 1 步预处理 → 生成.i文件输入.c .h输出.i做什么处理所有以#开头的预处理指令 → 把#include引入的头文件内容完整插入进来、把#define定义的宏做文本替换三、第 2 步编译 → 生成.s文件*输入.i文件输出.s文件做什么把 C 语言高级代码翻译成汇编语言代码四、第 3 步汇编 → 生成.o文件*输入.s汇编文件输出.o目标文件object file做什么把汇编指令全部翻译成计算机能直接识别的二进制代码0 和 1五、第 4 步链接 → 生成可执行程序输入多个*.o目标文件 库文件比如 C 标准库输出最终的可执行程序