宏定义中##符号的作用

本文介绍了宏定义中##符号的作用,它作为记号粘帖操作符用于将字符连接起来,替代空格并处理可变参数中的逗号问题。通过示例展示了##如何在宏替换中消除多余逗号,避免编译错误。
摘要由CSDN通过智能技术生成

在宏定义中,经常会遇到使用##符号,这个符号到底什么作用呢?今天这里简单的说明下:


1. ## 

  名称:记号粘帖操作符(token paste operator)

   作用:##先变成空格,将字符分隔开来,然后再将字符连接起来。

   在宏定义中,预处理器一般把空格解释为分段标志,对每一段进行比较,与前面相同的,就进行替换。但是如果用空格隔开,就不太好看,所以可以用##来代替空格。

  比如 #define A(a) s a   

           #define A(a) s##a

  1)先将##替换为空格,然后再来根据空格来把待替换的字符分段,如果某个段与前面相同,则进行替换。

  2)另外,待替换的字符段,也可以用+, - * /,  ,  ()等进行分段。

逗号 ,


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值