##在C/C++中具有连接字符串的作用例洳:
执行完A ## B后变为AB(连接A和B并去掉空格)。
下面通过具体实例来说明##的工作原理:
假设程序中已经定义了这样一个带参数的宏:
同时又定義了一个整形变量:
现在在主程序中以下面的方式调用这个宏:
那么在编译时上面的这句话被扩展为:
注意到在这个例子中,paster(9);中的这个”9”被原封不动的当成了一个字符串与”token”连接在了一起,从而成为了token9而#n也被”9”所替代。
可想而知上面程序运行的结果就是在屏幕上打印出token9=9