cabbageybc 发表于 2010-11-20 13:30:19

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

unsigned char znFAT_Buffer;

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

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


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

woody1983cn 发表于 2010-11-20 13:39:03

不明白你说的意思。
上面就是将znFAT_Buffer【512】这段空间,类型强制转换成PartSector结构,用此结构来解析。

caiyue3577 发表于 2010-11-20 20:57:45

ls说的对!
struct PartSector 的大小刚好也是512,和znFAT_Buffer中的512bytes对应!

shangubujing 发表于 2010-11-21 13:52:19

结构体在对齐的情况下超过512。
页: [1]
查看完整版本: 指向结构体的指针?帮忙分析下