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

求教怎么将下面的结构体转换成unsigned int型数组

2012-03-23 
求教如何将下面的结构体转换成unsigned int型数组?希望将typedefstruct{intXHcharYHM[8]unsingedlognHH

求教如何将下面的结构体转换成unsigned int型数组?
希望将
      typedef   struct
            {
                        int   XH;
                        char   YHM[8];
                        unsinged   logn   HH;
                        char   TQH[16];
                        int   BXH;
                        long   int   BYCJ;
                        int   BL;
                        long   it   DL;
                        char   YDLB[12];
                        long   int   ZTDL;
                        long   int   DLZJ;
                        float   WYJ;
                        float   SYYC;
                        float   HJJE;
                }

            转换成一个unsigned   int型数组。
            主要是想将这个结构体的值全部保存到flash器件中,而flash器件只支持写unsigned   long.

[解决办法]
int n = sizeof(structName);
new pU = unsigned int[n];
[解决办法]
晕struct xxx stdata;
flash_write( addr, (unsigned int*)&stdata, sizeof(stdata) )
将结构体指针牵制类型转换成unsigned int类型指针就可以了
[解决办法]
unsigned long *pu = new unsigned long[sizeof(ss)]
memcpy(p,(void*)&s,sizeof(s));

这个结构体正好没有字节对齐的填充问题,所以直接sizeof、memcpy就可以了,不然强制转换是不行的
[解决办法]
struct xx s;

fwrite((unsigned long*)&s, sizeof(s), 1, file);
[解决办法]
int d[sizeof(user)/sizeof(unsigned int)+1];

没有memcpy自己写一个 其实你只要使用4字节写入就是了
如何写规则自己定义,计算一下所有大小和4字节是否整除
考虑补齐 读出的时候如何填充进struct就没问题了

就算将结构数据一个一个字节读出,以unsigned int转化写入,读出时候一个一个int转成char组合好再写入这个结构也没有问题
[解决办法]
其实你搞个联合体把这个结构体和unsigned int数组包在里边也不错~

热点排行