为了能够真正的理解#define的作用,需要了解C/C++源程序的处理过程,在源程序的编译过程中实际经过了预处理、编译、汇编和链接几个过程。其中与宏相关的操作在预处理过程中完成,预处理包含以下几个过程:
(1)、文件包含
把源程序中#include包含的头文件扩展到文件正文,即把包含的.h文件找到并展开到#include所在的位置。
(2)、条件编译
预处理器根据#if和#ifdef等编译命令及其后的条件,将源程序中的某部分包含进来或排除在外,通常把排除在外的语句转换成空行。
(3)、宏展开
预处理器将源程序文件中出现的对宏的引用展开成相应的宏定义,即本文所说的#define的功能,由预处理器来完成。经过预处理器处理的源程序与之前的源程序有所不同,在这个阶段所进行的工作只是纯粹的替换与展开,没有任何计算功能,所以在学习#define命令时只要能真正理解这一点,才不会对此命令引起误解并误用。
1、#define的基本用法#define命令是C/C++语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。
一个标识符被宏定义后,该标识符便是一个宏名。这时,在程序中出现的是宏名,在该程序



