在宏定义中的“#”和“##”都是连接符。
区别:
“#”:连接的是两个字符串(连接的是宏展开的内容)。例如:
#define CLASS "Class"
#define SCHOOL(n) CLASS#n
SCHOOL(9)
展开为:"Class9"
“##”:连接的是宏本身(不是宏展开后的内容),例如:
#define CLASS "Class"
#define CLASS9 "Class---9"
#define SCHOOL(n) CLASS##n
SCHOOL(9)
展开为:Class---9
可以理解为两步展开所得:CLASS##n-〉CLASS9(连接只是宏本身,非宏内容)-〉Class---9