符串化-#
#是字符串化的意思,出现在宏定义中的#是把跟在后面的参数转成一个字符串;
#define strcpy__(dst, src) strcpy(dst, #src)
strcpy__(buff,abc) 相当于 strcpy(buff,“abc”)
连接符号-##
##是连接符号,把参数连接在一起
#define FUN(arg) my##arg
则
FUN(ABC)
等价于
myABC
使用
#define A(exp) cout << "I am "#exp << endl;
#define B(exp) cout << sz##exp << endl;
char *szStr = "test";
A(Chinese); // "I am ""Chinese"
B(Str); // szStr
将参数name前后字符连接在一起;
#define LWIP_MEMPOOL_DECLARE(name,num,size,desc) \
memp_memory_ ## name ## _base