|
发表于 2006-9-29 23:02:20
|
显示全部楼层
楼主要明白, #define 的功能是替换. 这分几种情况
没有参数的情况
有固定参数的情况
参数个数不定的情况
前两种都好理解, 也好说明, 所以就不说了. 我按照自己的经验说明一下最后一种:
假如有
#define fn(a, b, c...) func(a, b, c)
然后你这样调用
fn(1, 2, 3, 4)
那么, 它将被替换成如下的形式
func(1, 2, 3, 4)
为什么呢?
在替换过程中, fn 中的 a 对应 "1", b 对应 "2", c 对应 "3, 4", 然后再用它们去替换 func 那一部分的对应符号. c... 只是表明它对应所有剩下的符号, 而不同于 C 函数中不定量参数的表示法.
一句话, #define 不涉及语法, 只替换格式 |
|