久芯网

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

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

出错的图片如附件,帮忙看看怎样修改,谢谢!
6个回答
  • avatar 1+1=2
    回答时间: 2023-07-26 18:33:22

    你回头看看HAL库是怎么定义的,先了解C语言,再说宏定义,在了解一下结构体是什么意思

  • avatar onebyte
    回答时间: 2023-07-26 18:52:46

    这个问题很特别

  • avatar sealoong
    回答时间: 2023-07-26 19:19:41

    c语言知识,后部分讲的结构体

  • avatar sealoong
    回答时间: 2023-07-26 19:49:10

    不过兄弟我劝你还是不要研究hal库了,那个hal库的开发工程师我是真的想给他们磕一个,编写的十分不错,就是感觉很乱,但是还可以运行这就…… 你不停的跳转,然后在一个结构体里他们又会给你定义另一个结构体,然后是嵌套结构体,而且对应不同功能,还有数据类型,里面又会给你用很多很巧妙的方式,用起来特别爽,但是想理解得花费大功夫,那么多.H.C.EXT还有很多各种文件,看得我头皮直发麻,不过噢如果你能坚持看下来我觉得你技术一定能到另一种层级

  • avatar geowhy
    回答时间: 2023-07-26 20:20:18

    改成这样,是否正确 #define SET_FLAG(REG, BIT) \ { \ REG##.stFlag.##BIT = 1; \ }

  • avatar yr
    回答时间: 2023-07-26 20:37:42

    为什么要用宏定义呢?定义两个结构体类型,它们共享的成员定义成指针类型,其他的为各自不同的成员类型,这样,指针类型的那个成员将同时体现在这两个不同的变量里。

会员中心 微信客服
客服
回到顶部