1.为什么学习C语言
2.Visual Studio项目创建
3.可执行程序是如何生成的
3.1预处理
首先程序会由预处理器 (preprocessor) 进行处理。预处理器执行以 # 开头的指令 (预处理指令)。预处理指令一般都比较简单:比如,把头文件中内容copy 到源代码中,或者是对宏进行文本替换等。
VS预处理设置:项目 --> 属性 --> c/c++ --> 预处理器 --> 预处理到文件
1. #include :头文件包含 (把头文件中的内容复制到指令所在的位置) 2. #define N 5 :宏定义 (简单的文本替换) 3. #define FOO(x) (1 + (x) * (x)) :带参数的宏 (宏函数) (文本替换: 用“实参”替换“形参”)
3.2编译
经过预处理器处理的文件会交给编译器进行编译。编译器会把程序翻译成对应平台的汇编代码。
3.3汇编
汇编器会把生成的汇编代码翻译成对应平台的机器代码 (目标代码)。然而程序现在是不能运行的,还需要经过最后一个步骤——链接。
3.4链接
在链接阶段,链接器会把由汇编器生成的目标代码和程序需要的其他附加代码整合在一起,生成最终可执行的程序。这些附加代码包括程序中用到的库函数(如 printf 函数)。
4.宏函数
5.进程的虚拟内存空间
栈:可动态,主要管理函数的调度,执行程序
堆:动态申请内存和释放内存
进程可以理解为在运行中的程序
进程看到的是虚拟内存