我先定义一个联合体数据类型,然后接着定义了一些联合体变量,定义联合体部分如下:
我在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
虽然说一些警告可以不用管,但是我在调试的时候这些个变量始终为零,不知道是不是跟这些个警告有关,这两个警告不知道怎么改,想请原子哥及大家看看,该怎么改,谢谢大家哈,呵呵。。
2019-7-12 14:07:33
将共用体的原型声明放头文件中即可,无需在源文件和头文件中同时声明。
将共用体的原型声明放头文件中即可,无需在源文件和头文件中同时声明。
举报
2019-7-12 14:16:31
但是这个共用体在多个源文件中被调用了,我试着改了一下,把共用体的原型只放在头文件中,但是出错了
但是这个共用体在多个源文件中被调用了,我试着改了一下,把共用体的原型只放在头文件中,但是出错了
举报