记:宏定义中的##和#的作用

内核中有很多的宏定义,在宏定义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

猜你喜欢

转载自blog.csdn.net/lzg_zone/article/details/81304725
今日推荐