STM32
直播中

郭金

7年用户 144经验值
私信 关注
[问答]

如何定义了这个联合体?

我先定义一个联合体数据类型,然后接着定义了一些联合体变量,定义联合体部分如下:
我在sys_config.c文件中定义如下联合体数据类型和变量:
/*定义共用体数据类型*/
union myun{
u32 range;
u8 temp[4];
float data_f;
};
/*定义共用体变量*/
union myun Pitch_un;  
union myun Roll_un;   
union myun VLD_un;
union myun Vol_un;  
union myun Temperature_un;
union myun VLDRange_un;
这些个变量在多个C文件中被使用,然后我在sys_config.h这个文件中进行外部声明如下:
/*声明定义共用体类型*/
extern union myun{
u32 range;
u8 temp[4];
float data_f;
};
/*声明定义共用体变量*/
extern union myun Pitch_un;  
extern union myun Roll_un;   
extern union myun VLD_un;   
extern union myun Vol_un;   
extern union myun Temperature_un;
extern union myun VLDRange_un;
但是我在编译的时候出现这样的两个同样的警告:
.includeadc_dma.h(11): warning:  #1000-D: a storage class may not be specified here
.includeadc_dma.h(11): warning:  #1000-D: a storage class may not be specified here
虽然说一些警告可以不用管,但是我在调试的时候这些个变量始终为零,不知道是不是跟这些个警告有关,这两个警告不知道怎么改,想请原子哥及大家看看,该怎么改,谢谢大家哈,呵呵。。

回帖(3)

刘超

2019-7-12 14:01:25
联合体我也没怎么用过,不熟....
举报

孔喆

2019-7-12 14:07:33
将共用体的原型声明放头文件中即可,无需在源文件和头文件中同时声明。
举报

张红

2019-7-12 14:16:31
但是这个共用体在多个源文件中被调用了,我试着改了一下,把共用体的原型只放在头文件中,但是出错了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分