【问题标题】:What does respawn:1 mean in c? [duplicate]respawn:1 在 c 中是什么意思? [复制]
【发布时间】:2011-05-25 12:02:30
【问题描述】:

可能重复:
what does this mean in c int a:16; ?

:1 在这里是什么意思:

...
unsigned respawn:1;
unsigned just_respawn:1;
unsigned detached:1;
unsigned exiting:1;
unsigned exited:1;
} ngx_process_t;

【问题讨论】:

标签: c syntax


【解决方案1】:

这看起来像 struct 中的 bit field(您省略的标题)。 :1 表示“1 位宽”,因此在您的情况下,它们都是布尔值。编译器应该通过每个字节打包许多来优化它们的空间使用。

【讨论】:

  • @JB,那么unsigned 是干什么用的?
  • @compile-fan:这是字段的类型。字段是整数,它们可以是有符号的或无符号的。 (这对于宽于 1 的字段最有意义)。
【解决方案2】:

respawn 是一个 1 位宽的位域,因此它可以取 0 或 1 的值。

【讨论】:

  • 那么unsigned 是干什么用的?
  • 位域,如整数,可以有符号或无符号。对于 1 位字段,您希望它是无符号的,因为您没有空间容纳符号位。
  • 实际上,我想你可以有一个 1 位宽的有符号 int 位字段。它可以存储 -1 或 0。
猜你喜欢
  • 1970-01-01
  • 2019-09-12
  • 2013-01-03
  • 2020-04-11
  • 2015-05-20
  • 2015-06-25
  • 2019-12-08
  • 2013-02-12
  • 2011-06-10
相关资源
最近更新 更多