内核中有很多的宏定义,在宏定义define中经常看到两个字符串##和#,这里把它的用法做一下说明:
一、 ##是一个连接符号,用于把参数连在一起 例如:
> #define FOO(arg) my##arg 则
> FOO(abc) 相当于 myabc
二、 #是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串 例如:
> #define STRCPY(dst, src) strcpy(dst, #src) 则
> STRCPY(buff, abc) 相当于 strcpy(buff, "abc")
#define CON(n) #n"good" 那么
int id = 10;CON(id)的值就是idgood