C语言预处理

C语言预处理教程

所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理是 C 语言 的一个重要功能, 它由预处理程序负责完成。当对一个源文件进行编译时, 系统把自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。

C 语言提供了多种预处理功能,如宏定义、文件包含、 条件编译等。合理地使用预处理功能编写的程序便于阅读、修改、 移植和调试,也有利于模块化程序设计。

C语言预处理使用

预处理主要是处理以 # 开头的命令,例如 #include <stdio.h> 等。预处理命令要放在所有 函数 之外,而且一般都放在源文件的前面。

案例

C语言预处理

我们在 Linux 上,使用 vim 新建一个 hellohaicoder.c 文件,并输入以下代码:

#include <stdio.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); return 0; }

输入完毕后,我们使用 gcc 命令的 E 选项,实现对以上程序进行预处理,具体命令如下:

gcc -E hellohaicoder.c -ohellohaicoder.i

其中,gcc 是 linux 平台用来编译 C 语言程序的编译器,E 选项表明是对该程序进行预处理,o 选项是指定预处理后生成的文件名,运行完毕后,会生成 hellohaicoder.i 文件,如下图所示:

01_c语言预处理.png

我们再次使用 vim 打开预处理后的 hellohaicoder.i 文件,如下图所示:

02_c语言预处理.png

此时,我们可以看到,我们程序经过预处理后,源代码已经变成了八百多行,这是因为,预处理将我们包含的 stdio.h 头文件全部包含了进来。

C语言预处理教程总结

预处理是 C 语言的一个重要功能, 它由预处理程序负责完成。当对一个源文件进行编译时, 系统把自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。