RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
结构中 变量对齐
  • 作者:zhaozj
  • 发表时间:2020-12-23 10:53
  • 来源:未知

程序: #include <iostream>#include <cstdio>   typedef struct AA{        int b ;        char a1 ;        char a2 ;        char a3 ;        char a4 ;        char a5 ;        char a6 ;        char a7 ;        char a8 ;        char a9 ;        char a10 ;        double c ;        char d ;}; /*************************************************************************************************** 我原来认为: typedef struct AA{        int b ;    4       4        char a1 ;  1+3     8        char a2 ;  1       9        char a3 ;  1       10         char a4 ;  1       11         char a5 ;  1       12         char a6 ;  1       13        char a7 ;  1       14         char a8 ;  1       15         char a9 ;  1       16        char a10 ; 1+7     24         double c ; 8       32        char d ;   1+7     40     }; 但实际是 原则: 1. 结构中变量是上下都对齐 2. 变量存储是以 char为单位 ,同类型的要算一起   解释: a1 是char , b 是 int 所以存在对齐 ,a1 后面有三个空位 但 a2,a3,a4 还是和 a1是同类型所以还是存储在 a1 后面   a5 ~ a10 总共 6 个 char 但其后是 一个 double c , 所以补 二个空格     typedef struct AA{        int b ;    4       4        char a1 ;  1       5   /*a1 要对齐,补三个char ,但其后的变量也是char 所以填三个char */        char a2 ;  1       6        char a3 ;  1       7         char a4 ;  1       8