c语言宏替换规则