1 预处理介绍
对于任何一种非机器语言,都需要编译为机器语言,程序才能执行。高级语言(C语言/C++)在进行编译的时候,一般过程为预处理、编译、链接。本文主要总结C/C++中预处理的相关知识。
1.1 预处理命令
编译预处理命令:以#开头,以回车结束,独占一行;可出现在程序的任何位置,常置于源程序的开始;不属于C++的语法范畴。
常用的预处理命令有:
#include 包含头文件
#if 条件
#else 否则
#elif 否则如果
#endif 结束条件
#ifdef 或 #if defined如果定义了一个符号, 就执行操作
#ifndef 或 #if !defined如果没有定义一个符号,就指执行操作
#define 定义一个符号
#undef 删除一个符号
#line 重新定义当前行号和文件名
#error 输出编译错误消息,停止编译
#pragma 提供机器专用的特性,同时保证与C++的完全兼容
1.2 预处理的作用
常见的预处理有:文件包含,条件编译和宏替换
- 文件包含
为什么要用文件包含,在C/C++,为了方便程序员写代码,开发者将常用的函数等放在标准库中,当程序员需要用到某个功能的函数的时候就不需要自己在写代码,而自己将标准库中对应的文件包含进来,就可以直接用里面的函数。再者,程序员自己为了方便程序的管理,需要自己定义头文件。文件包含的命令如下:
<