搜索
bottom↓
回复: 3

指向结构体的指针?帮忙分析下

[复制链接]

出0入0汤圆

发表于 2010-11-20 13:30:19 | 显示全部楼层 |阅读模式
unsigned char znFAT_Buffer[512];

struct PartSector
{
UINT8 PartCode[446]; //MBR的引导程序
struct PartRecord Part[4];   //4个分区记录
UINT8 BootSectSig0;  //55
UINT8 BootSectSig1;  //AA
};

struct PartRecord
{
UINT8 Active;         //0x80表示此分区有效
UINT8 StartHead;      //分区的开始磁头
UINT8 StartCylSect[2];//开始柱面与扇区
UINT8 PartType;       //分区类型
UINT8 EndHead;        //分区的结束头
UINT8 EndCylSect[2];  //结束柱面与扇区
UINT8 StartLBA[4];    //分区的第一个扇区
UINT8 Size[4];        //分区的大小
};


请问 ((((struct PartSector *)(znFAT_Buffer))->Part[0]).StartLBA);怎么理解,我是这么理解的不知道 对不对
((struct PartSector *)(znFAT_Buffer)) 是指向结构体 struct PartSector 的指针即znFAT_Buffer 数组的第一个元素 znFAT_Buffer[0] 指向 结构体 struct PartSector  ?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-11-20 13:39:03 | 显示全部楼层
不明白你说的意思。
上面就是将znFAT_Buffer【512】这段空间,类型强制转换成PartSector结构,用此结构来解析。

出0入0汤圆

发表于 2010-11-20 20:57:45 | 显示全部楼层
ls说的对!
struct PartSector 的大小刚好也是512,和znFAT_Buffer中的512bytes对应!

出0入0汤圆

发表于 2010-11-21 13:52:19 | 显示全部楼层
结构体在对齐的情况下超过512。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-13 09:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表