本帖最后由 通宵敲代码 于 2017-2-11 13:38 编辑
其中方法一是我们定义一个结构体实体最常用的方法二方法二这是STM32库函数中给出的一个常用的方法
我们知道,我们定义的结构体变量类似于一个数据类型,
可以直接用来定义相同结构的结构体变量,如下图
其中struct是为了说明我们定义的是结构体变量,类似于整形int;
MesgData使我们用来定义变量的原型,类似于整形变量的长度WORD;
而最后的UserMesgData才是我们真正要用的结构体变量。
如果要跨文件调用这个变量,我们还需要使用extern声明一下。
以上便是我们在C语言中学到的关于结构体的最基本用法。
但是,开发过STM32程序的技术人员都知道,
在STM32中我们要初始化一组寄存器,
来定义这组寄存器的结构体变量时,我们都是这么写的
其中,根本没有使用struct前缀,
好像MesgData直接跟int一样,起了相同的作用,
似乎成了C编译器默认的关键词了,
而编译器也没有报告任何错误,程序也能正常执行。
|