结构体对齐

struct BPB16 {
u16 BPB_BytsPerSec; //每扇区字节数
u8 BPB_SecPerClus; //每簇扇区数
u16 BPB_RsvdSecCnt; //DBR保留的扇区数
u8 BPB_NumFATs; //FAT表个数
u16 BPB_Unused1; //FDT容量(FAT32未用)
u16 BPB_Unused2; //小于32MB分区的扇区数(FAT32未用)
u8 BPB_Media; //介质描述符
u16 BPB_Unused3; //FAT16中表示FAT扇区数(FAT32未用)
u16 BPB_SecPerTrk; //每磁道扇区数
u16 BPB_NumHeads; //磁头数
u32 BPB_HiddSec; //隐藏扇区数
u32 BPB_TotSec; //扇区总数
u8 BPB_NumberBIOS; //BIOS驱动器号
u8 BPB_Unused4;
u8 BPB_ExFlag; //扩展引用标记
u32 BPB_VOLSER; //卷序列号
char BPB_Unused8[11];
u64 BPB_Type; //文件系统类型
};

如上个结构体所示,系统为了节省空间,会默认打乱结构体中成员的顺序,而有时我们需要结构体中的成员按照顺序来排列,这时需要在结构体之前加上#pragma pack (1),表示按1字节对齐,具体#pragma pack (n)的用法这里不再详细解释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值