首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2014-04-24 来源:读书人网 【读书人网(Reader8.cn):综合教育门户网站】
一个long类型的值如何能直接赋给4个unsigned char数据成员的结构体一个long类型的值不能直接付给4个unsign

一个long类型的值如何能直接赋给4个unsigned char数据成员的结构体
一个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;
我想请教更好方法,或者有更简洁的程序实现也可以看看
[解决办法]
方法1
*(long*)A.Data = B;

方法2
   typedef struct
    {
    union {
        char Data[4];
        long dwData;
    };
    }StructA;
    StructA A;
    long B;
    B=0x11121314;
    A.dwData = B;
[解决办法]
支持用联合来做

也可以用memcpy