C++语言程序设计

简单的宏定义将一个标识符定义为一个字符串，源程序中的该标识符均以指定的字符串来代替。前面已经说过，预处理命令不同于一般C++语句。因此预处理命令后通常不加分号。这并不是说所有的预处理命令后都不能有分号出现。由于宏定义只是用宏名对一个字符串进行简单的替换，因此如果在宏定义命令后加了分号，将会连同分号一起进行置换。如：
#define PI 3.14159265;
则此时的PI所代替的字符串是"3.14159265;"而不是我们所期望的"3.14159265"。

| 例9-3

#include<iostream.h>
//将系统输入输出流头文件包含进来
#define PI 3.14159265
//用简单宏定义定义了一个符号常量PI
void main( )
{
double r, l, s,v;
cout<< "Input radius:";
cin >>r;
1=2*PI*r;
s=PI * r*r;
v=4.0/3.0 * PI *r*r*r;
//上面语句中的PI，被符号常量/3.14159265替换
cout<< "1="<<1<< "\n"<< "s="<<s<< "\n"<< "v="<<v<<end1;
//分别输出l、s、v的值，观察宏替换产生的结果
}
该程序中main函数被替换后的结果如下：
void main( )
{
double r, l, s,v;
cout<< "Input radius:";
cin>>r;
1=2*3.14159265 *r;
v=4.0/3.0 *3.14159265 *r* r*r;
cout<< "1="<<1<< "\n"<< "s="<<s<< "\n"<< "v="<<v<<end1;
}

运行该程序，输入：
Input radius：5↙
输出结果为：
1=31.4159
s=78.5398
v=523.599