就是说实际上把函数参数里面的某些值直接当作字符出现在了程序里,比如你如果这样调用这个函数 setRegBitGroup(GPIOBDDR, 2, 0); 那么在执行的时候,按照函数的定义,相当于执行了这样的语句 reg = (word)((GPIOBDDR & ~GPIOBDDR_2_MASK) | ((0) << GPIOBDDR_bits_BITNUM)) 估计其中的MASK和BITNUM应该是事先付了值的变量 经常在CW的SDK或PE里看到这种形式的宏定义,其中##的作用是连字符,这样的话传入的参数就不光代表一个值,加上##以后就可以当作字符串出现在命令里了,从而实现了一些更直观的功能。 |