keil4中该如何外部引用联合union?

[复制链接]
2406|14
 楼主| zjucsd 发表于 2016-9-21 13:55 | 显示全部楼层 |阅读模式
keil4中该如何外部引用联合union?
xyz549040622 发表于 2016-9-21 21:58 | 显示全部楼层
直接定义,用extern申明就好了吧。
dirtwillfly 发表于 2016-9-22 08:16 | 显示全部楼层
楼上正解。keil支持联合体的,没啥特殊的。噢,好像匿名联合体要特殊处理一下。
 楼主| zjucsd 发表于 2016-9-22 10:10 | 显示全部楼层
union
{
   UINT8   chardata[4];
   UINT16  intdata[2];
   UINT32  longdata[1];
}ID;在主程序中定义

外部引用
extern  union
{
     UINT8   chardata[4];
     UINT16  intdata[2];
     UINT32  longdata[1];
}ID;

编译不成功
error:  #147: declaration is incompatible with "union <unnamed> ID" (declared at line 13 of "USER_CODE\myvrb.h")
ccxlslr 发表于 2016-9-22 10:12 | 显示全部楼层
本帖最后由 ccxlslr 于 2016-9-22 10:13 编辑
zjucsd 发表于 2016-9-22 10:10
union
{
   UINT8   chardata[4];

你的联合名称都没有,只定义了一个“ID”。自然没法引用!

先弄个名称再 extern union 名称; 试试
 楼主| zjucsd 发表于 2016-9-22 10:17 | 显示全部楼层
主程序
union IDDATA
{
   UINT8   chardata[4];
   UINT16  intdata[2];
   UINT32  longdata[1];
}ID;

外部引用extern  union  IDDATA;

报警error:  #20: identifier "ID" is undefined
      warning:  #1000-D: a storage class may not be specified here
justtest111 发表于 2016-9-22 11:32 | 显示全部楼层
typedef __packed union
{
uint32_t data32;
} Uino_S;
extern Uino_S data;

 楼主| zjucsd 发表于 2016-9-22 14:04 | 显示全部楼层
有相关资料说明一下吗,不是很明白
 楼主| zjucsd 发表于 2016-9-22 14:21 | 显示全部楼层
还是编译不过,迷茫中

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ccxlslr 发表于 2016-9-22 14:34 | 显示全部楼层

union IDDATA
{
   UINT8   chardata[4];
   UINT16  intdata[2];
   UINT32  longdata[1];
}ID;

外部引用extern  union  IDDATA ID;
 楼主| zjucsd 发表于 2016-9-22 15:13 | 显示全部楼层
keil4编译后还是报警
USER_CODE\APP-ARM020PC.c(35): error:  #70: incomplete type is not allowed
USER_CODE\APP-ARM020PC.c:                   TX0chardata[4+i] = ID.chardata[i];
lxyppc 发表于 2016-9-22 15:22 来自手机 | 显示全部楼层
把你的uint8 16 32改成unsigned char,short,long试试
 楼主| zjucsd 发表于 2016-9-22 15:51 | 显示全部楼层
一样的报警
 楼主| zjucsd 发表于 2016-9-22 15:52 | 显示全部楼层
union IDDATA
{
   unsigned char   chardata[4];
   unsigned int  intdata[2];
   unsigned long  longdata[1];
}ID;

extern  union IDDATA ID;
 楼主| zjucsd 发表于 2016-9-23 08:08 | 显示全部楼层
早上报到
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

351

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部