#和##的用法

#和##在C语言中宏定义使用很多,简单写下#和##的用法

“#”运算符

运算符#的名字是Stringizing Operator,它将函数宏的实际参数转换为对应的字符串常量。

  1. ”#“的功能是对参数执行字符串化,如果没有特殊情况,这就意味着直接用""将参数包裹起来做替换。

  2. 如果实际参数中包含在字符串中使用时需要转义的字符(比如"和),那么这些字符就会被转义。

  3. 被字符串化的文本中的所有前导和尾随空白被忽略。文本中间的任何空格序列都将转换为单个空格。至于注释,因为注释往往在编译器处理源代码刚开始就被去除,远早于字符串化的发生,所以注释不可能包含在转换的结果中。

  4. 参数直接转换成字符串,参数中的宏不展开。

“##”运算符

##称之为标记粘贴运算符(Token-Pasting Operator),也可以叫做合并运算符(“merging” operator)。简单的说,“##”是一种分隔连接方式,它的作用是先分隔,然后进行强制连接。当宏展开时,位于##两边的标记合并成一个标识符,如果##两边的标识符时宏函数的参数时,用实际参数取代标识符后再合并。##两边的空格在合并时都会被删除,空格多少是无关紧要的。

https://blog.csdn.net/Meteor_s/article/details/89208733

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值