一个long类型的值如何能直接赋给4个unsigned char数据成员的结构体

小乖乖_学技术 2013-11-14 08:49:33
一个long类型的值不能直接付给4个unsigned char数据成员的结构体
typedef struct
{
char Data[4];
}StructA;
StructA A;
long B;
B=0x11121314;
A=B;
因为long和结构体StructA数据类型不兼容,所以不能直接赋值
有没有好的方法直接赋值
不要告诉我,用分离的方法:
A.Data[0]=B>>24;
A.Data[1]=(B&0xFF0000)>>16;
A.Data[2]=(B&0xFF00)>>8;
A.Data[3]=B&0xFF;
我想请教更好方法,或者有更简洁的程序实现也可以看看
...全文
227 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
还是用联合体好,谢谢!
lbing7 2013-11-15
  • 打赏
  • 举报
回复
支持用联合来做 也可以用memcpy
pathletboy 2013-11-14
  • 打赏
  • 举报
回复
方法1 *(long*)A.Data = B; 方法2 typedef struct { union { char Data[4]; long dwData; }; }StructA; StructA A; long B; B=0x11121314; A.dwData = B;

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧