1、单#的作用是把参数变成字符串;
2、##的作用是连接组合参数名字;
废话不多说,看个简洁的例子就明白了
#include <iostream.h> using namespace std; #define TEST0(arg) cout << arg << endl #define TEST1(arg) cout << #arg << endl #define TEST2(arg) cout << i##arg << endl #define TEST3(arg) cout << arg##t << endl #define TEST4(arg) cout << i##arg##t << endl int main() { int iTest = 10; TEST0(iTest); TEST1(iTest); TEST2(Test); TEST3(iTes); TEST4(Tes); return 0; }
打印结果
10 iTest 10 10 10
总结:
#arg 展开成 “arg”
i##arg 展开成 iarg
arg##t 展开成 argt
i##arg##t 展开成 iargt
【参考链接】