gpt4 book ai didi

c - 结构声明

转载 作者:行者123 更新时间:2023-12-02 01:58:11 25 4
gpt4 key购买 nike

有这样一个结构声明:

typedef struct {
int a:1;
:0;
int b:2;
} struct1;

我不明白如何阅读或理解它,我不明白以下内容:

1) struct1 是一个包含两个字节的整数a和b的数据类型,每个只能分别访问1位和2位,

2) :0 是什么意思?

3)struct{ int a;int b;}struct1;和上面的typedef有什么区别吗?

4) 如果我创建一个像 struct1 c={1,2,4}; 这样的变量,它会给我错误“太多的初始化器”

最佳答案

这些被称为位域。这是一种指定应为结构中的每个变量分配多少位的方法。

  1. 它们不是“两个字节”,代码中没有这样说。宽度为 1 的带符号整数也是一个非常糟糕的主意,它只能存储值 -1 和 0。
  2. 匿名位域 :0 导致将以下位域分配到不同的 int 中。 See this page了解详情。
  3. 是的,上面使用了位字段,这将影响对ab 的访问方式。
  4. 是的,结构中只有两个字段,ab。不是三个。

关于c - 结构声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18694255/

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