关于位字段的问题
有谁知道为什么位置不一样出现的值就不一样吗? struct bit
{
int b6 : 1;
int b5 : 1;
int b4 : 1;
int b3 : 1;
int b2 : 1;
int b1 : 1;
} B;
int main()
{
struct bit A;
bit* pA = &A;
bit* pB = &B;
A.b6 = 1;
A.b3 = 1;
B.b6 = 1;
B.b3 = 1;
printf_s(" A: %d\n B: %d", A, B);
return 0;
}
B 是全局变量,A 是局部变量
B 在全局区A 在栈上
B 即使你不给他初始化,编译器也会自动初始化
A 只是声明并没有初始化
struct bit
{
int b6 : 1;
int b5 : 1;
int b4 : 1;
int b3 : 1;
int b2 : 1;
int b1 : 1;
} B;
int main()
{
struct bit A = { 0, 0, 0, 0, 0, 0 };
bit* pA = &A;
bit* pB = &B;
A.b6 = 1;
A.b3 = 1;
B.b6 = 1;
B.b3 = 1;
printf(" A: %d\n B: %d", A, B);
return 0;
}
页:
[1]