谈谈#define xxxx(x,y) x##y

先看一个例子:

#define  czg(x,y)   x##y
czg(love,9728)=?

答案:love9728

## 被称为连接符,用来将两个宏参数连接为一个宏参数。

再看:

#define  czg(x)   #@x
czg(3)=?

答案:’3’

#@其实就是给x加上单引号

但是如果你的测试参数超过四个字符(czg(12345)),编译器就给报错!error C2015: 常量中的字符太多:error C2015: too many characters in const

最后:

#define  czg(x)   #x
czg(3)=?

答案:“3”

#其实就是给x加上双引号,使其变成字符串

总结:

##    连接符
#@ 加单引号,字符常量
#      加双引号,字符串

具体实例:请点我!

你可能感兴趣的:(【Linux,development,knowledge】)