0
我發現這樣奇怪的事情:爲MasterBootRecord結構MVC 11.0 - 錯誤的結構尺寸?
//
typedef unsigned char Byte;
typedef unsigned short int Word;
typedef unsigned int Dword;
//
typedef struct
{
Byte currentPartitionState;
Byte startPartitionHead;
Word startCylinderSector;
Byte partitionType;
Byte endPartitionHead;
Word endCylinderSector;
Dword numSectorsBetweenMbrAndPartition;
Dword numSectorsInPartition;
} PartitionEntry;
//
typedef struct
{
Byte executableCode[446];
PartitionEntry partitionEntry1;
PartitionEntry partitionEntry2;
PartitionEntry partitionEntry3;
PartitionEntry partitionEntry4;
Word bootRecordSignature;
} MasterBootRecord;
當我嘗試獲得的sizeof(MasterBootRecord),我得到516個字節,但大小合適的是446 + 4×16 + 2 = 512爲什麼它可能是如此?
您可能需要使用#pragma pack – drescherjm 2013-03-25 21:40:21
'/正確的大小/ *我認爲應該是因爲我受教育程度不足以回答我自己的問題/' – 2013-03-25 21:50:54
或重新安排數據成員。首先分區條目,然後是bootRecordSignature,然後是executableCode。 – 2013-03-25 21:50:55