C中的#与##作用

本文详细解释了编程中#和##宏定义的区别:#用于字符串化参数,而##实现变量拼接。通过实例演示了两者在toString和变量组合中的作用,帮助初学者理解这两个符号在宏中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平常阅读代码中,会经常遇到宏中使用#或者##号,很多初学者看到使用#或者##的定义宏时会有点头大

其实区分两个东东非常简单:

  • 宏中使用#号  会将宏中的参数变为字符串,例如:
#define toString(str)  #str

上述例子使用#号定义,将参数str转换成字符串,如果时toString(123456) 之后,123456数字会被转换成字符串“123456”

  • ##号的作用时黏贴符号的作用,将两个变量黏贴在一起,但是并不是转成字符串
#define conVar(a,b) (a##b)

上述宏,是将两个变量a和b黏贴在一起,例如conVar(1,5) 之后会变成15,但是并不是字符串“15”,而是整数15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huo的藏经阁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值