基本为:
char 1字节 short 2字节 int 4字节 long 4字节 float 4字节 double 8字节
typedefstruct {
char ; char ; short ; };
charcharshort 类型的结构体占4字节内存。 ┌───┬───┐
│ char │ char │2字节 └───┴───┘ ┌───┬───┐
│ short │2字节 └───┴───┘
typedefstruct {
short; char; char; }
Short char char 类型的结构体占4字节内存. ┌───┬───┐
│ short │2字节
└───┴───┘ ┌───┬───┐
│ char │ char │2字节 └───┴───┘ typedefstruct {
char ; short ; char ; }csc;
Char short char 类型的结构提占6字节内存,以short 做2字节对齐 ┌───┬┄┄┄┐
│ char │ null │2字节 └───┴┄┄┄┘ ┌───┬───┐
│ short │2字节 └───┴───┘ ┌───┬┄┄┄┐
│ char │ null │2字节 └───┴┄┄┄┘
typedefstruct {
double ; char ; char ; char ; }
double char charchar 类型的结构体占16字节内存 8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘ 8字节
┌───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ char │ char │ null │ └───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘
typedefstruct {
char ; char ; double ; char ;
char ; char ; }
char chardouble char char 类型的结构体占24字节内存 8字节 使用2字节空余6字节
┌───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ char │ null │ └───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘ 8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘ 8字节 使用3字节空余5字节
┌───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ char │ char │ null │ └───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘
typedefstruct {
char ; int ; double; char ; char ; char ; int ; }
char int double char charcharint 类型的结构体占用24字节内存 8字节 使用2字节空余6字节
┌───┬┄┄┄┬┄┄┄┬┄┄┄┬───┬───┬───┬───┐ │ char │ null │ int │ └───┴┄┄┄┴┄┄┄┴┄┄┄┴───┴───┴───┴───┘ 8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘ 8字节 使用3字节空余5字节
┌───┬───┬───┬┄┄┄┬───┬───┬───┬───┐ │ char │ char │ char │ null │ int │ └───┴───┴───┴┄┄┄┴───┴───┴───┴───┘ typedefstruct {
char ; short ;
int ; double ; char ; int ; float ; }
char short int double char int float 类型的结构体占用32字节内存 8字节 使用2字节空余6字节
┌───┬┄┄┄┬───┬───┬───┬───┬───┬───┐ │ char │ null │ short │ int │ └───┴┄┄┄┴───┴───┴───┴───┴───┴───┘ 8字节
┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘ 8字节 使用3字节空余5字节
┌───┬┄┄┄┬┄┄┄┬┄┄┄┬───┬───┬───┬───┐ │ char │ null │ int │ └───┴┄┄┄┴┄┄┄┴┄┄┄┴───┴───┴───┴───┘ 8字节 使用3字节空余5字节
┌───┬───┬───┬───┬┄┄┄┬┄┄┄┬┄┄┄┬┄┄┄┐ │ float │ null │ └───┴───┴───┴───┴┄┄┄┴┄┄┄┴┄┄┄┴┄┄┄┘ 对上一个结构体做位置变更,查看内存占用情况 typedefstruct {
char ; char ; short ; int ; int ; float ; double ; }
经过位置变更,占用内存为24字节
┌───┬───┬───┬───┬───┬───┬───┬───┐ │ char │ char │ short │ int │ └───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐ │ int │ float │ └───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐ │ double │ └───┴───┴───┴───┴───┴───┴───┴───┘
typedefstruct {
short ; char ; char ; char ; int ; }
short char charcharint 类型的结构体占用12字节内存 4字节
┌───┬───┬───┬───┐ │ short │ char │ char │ └───┴───┴───┴───┘ 4字节 使用1字节剩余3字节
┌───┬┄┄┄┬┄┄┄┬┄┄┄┐ │ char │ null │ └───┴┄┄┄┴┄┄┄┴┄┄┄┘ 4字节
┌───┬───┬───┬───┐ │ int │ └───┴───┴───┴───┘
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务