比特大小的结构域

Mah*_*mam 0 c

我有两个问题:

这段代码:

   struct employee
   {
      char name[20];
      int married :1;
   };
Run Code Online (Sandbox Code Playgroud)

结婚有多少记忆?

如果我有多个位大小的字段将它们放在保持个性的相同变量中是否很好?

喜欢:

struct employee
{
 char name[31];
 int married :1;
 int manager :2;
 int children :4;
};
Run Code Online (Sandbox Code Playgroud)

要么

struct employee
{
 char name[31];
 int flage; /* one bit for married, one for manager, and 4 bits for children */
};
Run Code Online (Sandbox Code Playgroud)

哪一个更好的内存使用和为什么???

Max*_*kin 5

结婚有多少记忆?

int : 1在存储单元中占用一位内存sizeof(int).注意,因为int有符号并且位域只有一位,所以这样的位域只能取两个值:-1和0.