C++语言程序设计

下面是宏定义的一个例子：

| 例9-1

#include <iostream.h>
//将系统输入输出流头文件包含进来，如果没/有这一行语句，
//用VC编译器进行编译的//话，会出现下面的错误提示：
//error C2065: 'cout' : undeclared identifier
#define CUBE_THREE 3*3*3
//用简单宏定义定义了一个符号常量"CUBE_THREE"
void main()
{
int a;
a=CUBE_THREE;
//将该宏的值赋给a，实际上是将该宏所定义的符号常量的值赋给a，
//因此在编译运//行到该语句的时候，"a=CUBE_THREE;"等价于"a=3*3*3;"
cout<<"a is"<<a<<endl;
//输出a的值，观察宏替换产生的结果
}

编译并运行该程序，结果如下：
a is 27
因为经过宏替换后，语句"a=CUBE_THREE"等价于"a=3*3*3;"。
宏替换的功能为我们编程时可以带来一些方便。因为，如果在程序中，某一个常量出现较多，就可以为该常量定义一个宏。这样，假定我们要修改该常量时，就不必在程序中对该常量用手工一个个地查找、修改，而只要修改其宏定义即可。例如，如果在一个程序里，3的立方出现的次数比较多，我们就可以把它定义成上面的宏的形式。假定现在需要把3的立方修改成3的4次方，只要修改宏定义即可：
#define CUBE_THREE 3*3*3*3
宏定义命令通常有两种格式：一种是简单的宏定义，另一种是带参数的宏定义。