C 중 구조 체 의 저장 분배

4849 단어 구조 체
C          

  C                ,           ,           ,          ,            ,           ,         ,       ,       。

     ,              ,     ,    “  ”            。                  :                          。                      ,                    。             。

sizeof                ,               。      sizeof          。       :

struct test1 

{

   int a;

   char b[9];

   char c;

 };

      test1 16   。   a 4   (32  ,int 4   ),b c   9    1   ,   10   , a  ,   12   ,      16   。            ,       。

struct test2 

{

   char b[9];

   int a;

   char c;

 };

      test2 20   。  test1 test2       a b       ,         ?                。int     ,     9   ,   a,    ,      12+4   ,      char,     4,     20   。 test1          ,          ,    。

          ,     :

struct test3 

{

   char b[9];

   int a;

   char c;

   double d;

 };

       ,b 9   ,a 4   ,   a  ,       12+4,   c 1      12+4+1=17,   d 8   ,   8    ,    24+8=32   ,      32   。      ,      :

struct test4 

{

   char b[9];

   int a;

   double d;

   char c;

 };

   ,b a  12+4   ,d 8   ,    16+8=24,         ,    ,    24+8=32   。        ,   b    13,     ,d     16+4,    d,    24+8,      8   ,   40   。

     :

struct test4 

{

   double d;

   char b[9];

   int a;

   char c;

 };

d 8   ,b 9   ,   int,    ,  a   20+4,   1   ,      double  ,     20+4+8=32   。

  ,            ,        ,                  。       ,        。

1)  ,         “   ”(      ,               ,  test1 test2  int, test3 test4  double,              ),      ,                               。

2)  ,          。            ,       “   ”     ,           ,        。

3)             ,         ,              。

                 ,    offsetof (stddef.h)offsetof(type,member)。type      ,member        ,         sizeof_t 。            (            )。

            ,              ,               ,           。

http://blog.sina.com.cn/s/blog_67b077fe0101844k.html

좋은 웹페이지 즐겨찾기