宏定义中##和#作用.docVIP

  • 3
  • 0
  • 约3.4千字
  • 约 3页
  • 2019-07-05 发布于江苏
  • 举报
内核中有很多的宏定义,在宏定义define中经常看到两个字符串##和#,这里把它的用法做一下说明: ##是一个连接符号,用于把参数连在一起 例如: #define FOO(arg) my##arg 则 FOO(abc) 相当于 myabc #是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串 例如: #define STRCPY(dst, src) strcpy(dst, #src) 则 STRCPY(buff, abc) 相当于 strcpy(buff, abc) 另外,如果##后的参数本身也是一个宏的话,##会阻止这个宏的展开 。 #define STRCPY(a, b) strcpy(a ## _p, #b) int main() { char var1_p[20]; char var2_p[30]; strcpy(var1_p, aaaa); strcpy(var2_p, bbbb); STRC

文档评论(0)

1亿VIP精品文档

相关文档