gpt4 book ai didi

c - 什么是零宽位域

转载 作者:太空狗 更新时间:2023-10-29 16:34:07 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Practical Use of Zero-Length Bitfields

为什么有些结构具有零宽度位域,为什么需要它?

struct foo {
int a:3;
int b:2;
int :0; // Force alignment to next boundary.
int c:4;
int d:3;
};

int main()
{
int i = 0xFFFF;
struct foo *f = (struct foo *)&i;
printf("a=%d\nb=%d\nc=%d\nd=%d\n", f->a, f->b, f->c, f->d);
return 0;
}

上面程序的输出是

manav@os-team:~/programs/test$ ./a.out
a=-1
b=-1
c=-8
d=0

请解释为什么这些值是负数,以及这些变量在结构体内部的内存布局?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com