-1
这样的代码:C++的sizeof(结构)
#include <stdio.h>
int main(){
struct{
unsigned char a:4;
unsigned char b:4;
}i;
struct{
unsigned char a:4;
unsigned char b:4;
unsigned char c:4;
}j;
i.a = 1;
i.b = 1;
j.a = 1;
j.b = 1;
j.c = 1;
printf("size of i is: %d, size of j is: %d", sizeof(i), sizeof(j));
return 0;
}
为什么输出为1 2?意味着我拥有1个字节的大小,j拥有2个字节。我们知道unsigned char有1个字节,所以为什么我不等于2?我很抱歉我的英语。