这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理....但在调用函数宏时, name与(之间可以有空格.
e.g.
#define mul(x,y) ((x)*(y))
注意, 函数宏之后的参数要用括号括起来, 看看这个例子:
e.g....insert ( a=1, b=2;) 就有问题了: 预处理器会提示出错: 函数宏的参数个数不匹配. 预处理器把","视为参数间的分隔符. ...调用这样的函数宏时, 传递给它的参数个数要不少于参数列表中参数的个数(多余的参数被丢弃)....再就是调用函数宏是要注意, 不要多给出";".
注意: 函数宏对参数类型是不敏感的, 你不必考虑将何种数据类型传递给宏.