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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值