C union共用体变量外部调用方法

之前,在使用联合体的时候,外部调用一直编译出错

感谢某大佬:(38条消息) C语言union变量外部调用--记录贴_Ztt300的博客-CSDN博客

解决了此问题,在此特此总结:

C union共用体变量外部调用方法:

1.在声明union共用体的A.h文件中定义联合体名

typedef union 
{
	float y1;
	unsigned char y2[4];
}ops9;

注1:typedef union后创建ops9为共用体数据类型

注2:ops9的位置问题

//常用直接定义共用体变量时,ops9在union的后面,此时ops9是一个特定的共用体类型名
union ops9
{
	float y1;
	unsigned char y2[4];
};
ops9 x,y;

或://此时没有定义共用体类型名,直接定义共用体变量
union 
{
    float y1;
    unsigned char y2[4];
}x,y;

//如果使用typedef来声明一个新的类型名,此时ops9在分号前,表定义一个新的数据类型名为ops,而ops9为一种共用体
typedef union
{
    float y1;
    unsigned char y2[4];
}ops9;

2.在声明union共用体的A.c文件中创建联合体变量

ops9 y,x,angle,upperx,uppery,upperangle;

注1:不建议在A.h文件中创建联合体变量,因为避免所有包含了A.h的文件对A.h中的变量重复定义,以避免Error L6200E: symbol multiply defined的报错

详细了解可参考资料:(37条消息) KEIL软件中编译时出现的Error L6200E: symbol multiply defined ...的解决方法_qq斯国一的博客-CSDN博客​​​​​​​b补充:symbol multiply defined报错的解决:

​​​​​(37条消息) keil报错:Symbol set_value multiply define和 incomplete type is not allowed和error:  #65: expected a “;“_浮若于心的博客-CSDN博客

3.在B.c外部调用声明

extern ops9 x;
extern ops9 y;

注1:在B.c文件要包含定义联合体名的A.h文件(#include "A.h")

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值