你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

C语言——"#"和"##"的用法

[复制链接]
gaosmile 发布时间:2020-11-27 19:00
1. 前言0 A5 z# `# H6 i" f3 J4 i
0 c8 F6 k' t% R6 g
使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.# u7 t5 s1 t0 k# Y% y6 ?# C

/ {0 A  [" l& v: w( m

9 _9 I2 A  J3 L4 ~" o. Y2. 一般用法
微信图片_20201127185850.jpg
3. 注意事项
8 h1 ~# _5 f9 ]+ v; f) X2 |
微信图片_20201127185856.jpg
! \2 e# h4 Z  g0 X) q% G
0 }' ]/ U9 F  i* _
" Y* \# e% i: o) L8 O
3.1 举例
微信图片_20201127185900.png
两句print会被展开为:
, F; c$ n" U( k6 C4 P
微信图片_20201127185904.png
分析: ! b! i/ [3 _+ T# R8 V: P
由于AGE是宏,且作为宏toString和conStr的参数,并且宏conStr和toString中均含有#或者##符号,所以A不能被解引用。导致不符合预期的情况出现。# ?9 z) I# _0 |5 @7 U% c! n
3.2 解决方案
微信图片_20201127185908.png
微信图片_20201127185911.png
结果:! ]" [0 Q+ h, i, R+ b& ~
) t! J, c+ O) O! A& T9 G
微信图片_20201127185914.png
5 W3 G  w  u+ {" K6 ~
+ l" _/ @+ A+ h) g5 i+ Q3 t9 Y* W
赞 收藏 评论0 发布时间:2020-11-27 19:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版