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

怎样用宏定义定义结构体?

[复制链接]
kaka_zhuo 提问时间:2022-6-22 20:48 / 未解决
我有两个结构体变量,变量名字分别为mmA和mmB。
这两个变量因为实际需要,分配到了不同RAM地址区间。
这两个变量,有一个相同的成员。想用下面的方式定义结构体,但是失败了。
#define SET_FLAG(REG, BIT)                                                       \
{                                                   \
        REG#A.stFlag.##BIT = 1;                                                \
}

出错的图片如附件,帮忙看看怎样修改,谢谢!
struct.png
收藏 评论6 发布时间:2022-6-22 20:48

举报

6个回答
1+1=2 回答时间:2022-6-23 08:33:13
你回头看看HAL库是怎么定义的,先了解C语言,再说宏定义,在了解一下结构体是什么意思
onebyte 回答时间:2022-6-23 13:55:13
这个问题很特别
sealoong 回答时间:2022-6-23 14:43:35
c语言知识,后部分讲的结构体
sealoong 回答时间:2022-6-23 14:47:30
不过兄弟我劝你还是不要研究hal库了,那个hal库的开发工程师我是真的想给他们磕一个,编写的十分不错,就是感觉很乱,但是还可以运行这就……
你不停的跳转,然后在一个结构体里他们又会给你定义另一个结构体,然后是嵌套结构体,而且对应不同功能,还有数据类型,里面又会给你用很多很巧妙的方式,用起来特别爽,但是想理解得花费大功夫,那么多.H.C.EXT还有很多各种文件,看得我头皮直发麻,不过噢如果你能坚持看下来我觉得你技术一定能到另一种层级
geowhy 回答时间:2022-6-29 11:42:34
改成这样,是否正确
#define SET_FLAG(REG, BIT)                                                       \
{                                                   \
        REG##.stFlag.##BIT = 1;                                                \
}
yr 回答时间:2022-7-26 22:18:15
为什么要用宏定义呢?定义两个结构体类型,它们共享的成员定义成指针类型,其他的为各自不同的成员类型,这样,指针类型的那个成员将同时体现在这两个不同的变量里。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版