一、预处理阶段
预处理阶段主要是对源文件(通常是 .cpp 文件)进行一些文本层面的处理,为后续的编译过程做准备,该阶段主要完成以下几方面工作:
-
头文件包含(
#include指令)
当遇到#include语句时,预处理器会将指定的头文件内容直接插入到源文件中该#include语句所在的位置。例如,有#include <iostream>语句,预处理器会找到系统标准库中iostream头文件的内容,并将其添加进来。同理,对于自定义的头文件,如#include "myheader.h",会把对应的myheader.h文件内容插入。这样做的目的是让当前源文件能够获取到其他头文件中声明的函数、类、变量等相关信息,便于后续编译时进行类型检查等操作。 -
宏定义展开(
#define指令)
对于通过#define定义的宏,预处理器会将代码中使用该宏的地方按照宏定义的规则进行替换。比如:
#define PI 3.1415926
double radius = 5.0;
double area = PI * radius * radius;
在预处理阶段,代码中的 PI 都会被替换成 3.1415926,经过替换后上述代码就变为:
double radius = 5.0;
double area = 3.1415926 * radius * radius;
另外,带参数的宏定义也会进行相应的参数替换展开,例如:
<

最低0.47元/天 解锁文章
2879

被折叠的 条评论
为什么被折叠?



