2815|2

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

在ADS上发生的编译问题,是关于结构成员引用的 [复制链接]

定义结构
    typedef struct
    {                              //字节位置
        uchar BootFlag;            // 0
        uchar StartCHS[3];         // 1 2 3
        uchar SystemID;            // 4
        uchar EndCHS[3];           // 5 6 7
        ulong RelativeSectors;     // 8 9 A B
        ulong TotalSectors;        // C D E F
    }PartTab_t;

当我访问tPartTab.RelativeSectorsr的时候,按照小端CPU的数据应该是字节BA98位置中的数据,可我在跟踪的时候引用数据的顺序却是7698

tPartTab.TotalSectors的字节顺序和位置也是错的

前面四个成员访问都是对的

请高人指点!



测试代码:
void fun (PartTab_t *tPartTab)
{
    uchar ucj;
    uchar *ucpTemp = (uchar*)tPartTab;

    for (ucj = 0; ucj < 16; ucj++) ucpTemp [ucj] = ucj;

    for (uci = 0; uci < 4; uci++)
    {
        printf ("    启动标志:%02X\n", tPartTab [uci].BootFlag);
        printf ("    分区类型:%02X\n", tPartTab [uci].SystemID);
        printf ("    相对扇区:%lu\n",  tPartTab [uci].RelativeSectors);
        printf ("    总扇区数:%lu\n",  tPartTab [uci].TotalSectors);
    }
}

最新回复

出错的成员变量在第8个字节上 我考虑过字节对齐的问题,但没有头绪  详情 回复 发表于 2007-4-24 17:00
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
会不会是编译器自动给你按四个字节对齐了,你考律一下对齐看看...
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
出错的成员变量在第8个字节上

我考虑过字节对齐的问题,但没有头绪
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表