1、刘刘 培培 华华1第第第第第第9 9 9 9 9 9章章章章章章 编译预处理编译预处理编译预处理编译预处理编译预处理编译预处理2005年3月22005年3月32005年3月4 如何修如何修改圆周率改圆周率2005年3月52005年3月6替替换换2005年3月7 2005年3月8main( ) float r; coutr; printf(S=%.2f V=%.2fn, 3.14*r*r, 4* 3.14*r*r *r/3);SVSV2005年3月9命令的一般形式命令的一般形式功能功能: 在编译预处理时,把源程序中所有在编译预处理时,把源程序中所有带参数的宏名带参数的宏名用宏定义中的用宏定义中的
2、字符串字符串替换,并且用宏名后圆括号中替换,并且用宏名后圆括号中的的实参替换实参替换字符串中的字符串中的形参形参。例如:例如:#define MAX(X,Y) (X)(Y)?(X):(Y)2005年3月10分两次替换:分两次替换: 用用 替换。替换。用用1+a+b替换替换x。cout语句被展开为:语句被展开为:Cout 1+a+b*(1+a+b-1);特别注意:特别注意:由于替换文由于替换文本中的本中的x没没有用括号括有用括号括起,因此,起,因此,1+a+b也不也不能用括号括能用括号括起。起。程序输出结果:程序输出结果:?2005年3月112005年3月122005年3月132005年3月14#include file2.c#include file3.cABCBCA2005年3月15