一.翻译环境和运行环境
在ANSIC中,存在两种不同的环境:
1.翻译环境:
将源代码转换为二进制指令
分为编译和链接
.c文件如何生成可执行程序:
多个.c文件单独经过编译器处理生成对应目标文件,多个目标文件和链接库一起经过链接器处理生成最终的可执行程序 (链接库是指运行时库(支持程序运行的基本函数集合)或者对三方库)
编译:预处理(预编译)(1.头文件的包含 2.#define定义符号的替换 3.注释的删除)+编译(词法,语法,语义分析)+汇编(将汇编的代码翻译成二进制指令)
链接:把多个目标文件链接生成一个可执行程序,包括符号的决议和重定义
2.运行环境:
1.载入内存
2.程序执行,接着调用main函数
3.执行程序代码,这时程序将使用函数栈帧,存储函数的局部变量和返回地址,同时使用静态内存,保留变量的值
4.终止程序