指向结构体的指针?帮忙分析下
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? 不明白你说的意思。
上面就是将znFAT_Buffer【512】这段空间,类型强制转换成PartSector结构,用此结构来解析。 ls说的对!
struct PartSector 的大小刚好也是512,和znFAT_Buffer中的512bytes对应! 结构体在对齐的情况下超过512。
页:
[1]