[C++]小知识

一、#,##的用法

1、“#”的作用是将其后面的宏参数进行字符画操作,简单的说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。

1 1 #define FUN(a) #a
2 2 FUN(abc); //等价于“abc”

2、“##”就是一个连字符,用来将两个Token连接为一个Token。这里的链接对象是Token就行,而不一定是宏变量。

1 #define FUN(a,b) a##n##b
2 FUN(i,t) a; //等价于int  a;

3、“L##”不同于“##”,它是在宏参数前面加上L。

1 #define FUN(a) L##a
2 FUN(str);//等价于Lstr
原文地址:https://www.cnblogs.com/dirt2/p/little_knowledge.html