位域是 C 概念还是 C++?
它只能在结构中使用吗?我们可以在哪些其他地方使用它们?
AFAIK,位域是特殊的结构变量,仅占用指定编号的内存。位。它在节省内存方面很有用。我对么?
我编写了一个小程序来了解位域的用法 - 但是,我认为它没有按预期工作。我希望以下结构的大小为 1+4+2 = 7 字节(考虑到 unsigned int 在我的机器上的大小为 4 字节),但令我惊讶的是它原来是 12 字节(4+4+4 )。谁能告诉我为什么?
#include <stdio.h>
struct s{
unsigned int a:1;
unsigned int b;
unsigned int c:2;
};
int main()
{
printf("sizeof struct s = %d bytes \n",sizeof(struct s));
return 0;
}
输出:
sizeof struct s = 12 bytes