#define中的三个特殊符号:#,##,#@
看下面三个define宏定义:
#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x
一、x##y
表示x连接y,如:
int n = Conn(123,456); //n=123456;char* str = Conn("asdf", "add") //str = "asdfadf";
二、#@x
给x加上单引号,结果返回是一个const char。举例说:
char a = ToChar(1); // a='1';
做个越界试验:
char a = ToChar(123); // 结果就错了
但是如果你的参数超过四个字符,编译器就给给你报错了!error C2015: too many characters in constant :P
三、#x给x加双引号,如:
char* str = ToString(123132); // str="123132";
参考:http://www.cppblog.com/kenny/archive/2011/04/26/145087.html