首页 > 试题广场 >

给定结构体的大小是多少?

[单选题]
在32位系统中,
struct st         
{
    char ch , *ptr;
    union          
    {
        short a , b;
        unsigned int c : 2 , d : 1;
          
    };
    bool f;
    struct st *next;  
};
下面结构体的大小是多少?
  • 14字节
  • 16字节
  • 20字节
  • 24字节
//ch       1(对齐4)
//ptr      4
//union  4  这里和unsigned intc : 2 , d : 1;  位域  c占两个2  然后紧接着存d 占1 然后对齐 是4
//bool    1(对齐  4)
//next    4
发表于 2015-10-02 18:47:34 回复(0)
答案:c
解释:
默认为4字节对齐
ch    4 
*ptr  4 
union 4 
f     4
*next 4 
发表于 2015-01-09 17:27:48 回复(0)
答案 : C
 主要是共用体:所占大小为共用体中最大的那个变量占用的空间  这题为int型:4
其他就按字节对齐就OK啦。
发表于 2015-10-02 09:14:57 回复(2)