下面举例说明##和#的作用。
class BigCup;
class SmallCup;
#define CreateCup(CupSize)
CupSize##Cup cup;
printf("create %sCup", #CupSize);
int main() {
CreateCup(Big)
CreateCup(Small)
return 0;
}
结果
create BigCup create SmallCup
##的作用:将CupSize和Cup分隔开来,让编译器知道CupSize部分是参数名,需要将它转换为传入的参数“Big”或者“Small”,再与Cup拼接。
#的作用:将参数转换为字符串,以上例子中的#CupSize,被转换为了"Big"和"Small"。



