OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13441|回复: 3

原子哥,我定义了这样一个联合体,但是用起来有问题,想请教你一下。

[复制链接]

19

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2011-9-19
在线时间
8 小时
发表于 2011-10-26 15:38:11 | 显示全部楼层 |阅读模式

 我先定义一个联合体数据类型,然后接着定义了一些联合体变量,定义联合体部分如下:
我在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; 

但是我在编译的时候出现这样的两个同样的警告:
.\include\adc_dma.h(11): warning:  #1000-D: a storage class may not be specified here
.\include\adc_dma.h(11): warning:  #1000-D: a storage class may not be specified here 

虽然说一些警告可以不用管,但是我在调试的时候这些个变量始终为零,不知道是不是跟这些个警告有关,这两个警告不知道怎么改,想请原子哥及大家看看,该怎么改,谢谢大家哈,呵呵。。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-10-26 16:59:15 | 显示全部楼层
联合体我也没怎么用过,不熟....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

312

帖子

0

精华

高级会员

Rank: 4

积分
907
金钱
907
注册时间
2011-10-19
在线时间
196 小时
发表于 2011-10-26 23:08:09 | 显示全部楼层
将共用体的原型声明放头文件中即可,无需在源文件和头文件中同时声明。
回复 支持 反对

使用道具 举报

19

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2011-9-19
在线时间
8 小时
 楼主| 发表于 2011-10-27 10:03:10 | 显示全部楼层
但是这个共用体在多个源文件中被调用了,我试着改了一下,把共用体的原型只放在头文件中,但是出错了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 14:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表