冒号在这个结构定义中做了什么?

时间:2010-12-07 06:02:16

标签: c

  

可能重复:
  What does 'unsigned temp:3' means

我不明白这个结构定义。这对我来说似乎是违法的,但显然不是:

typedef struct
{
    unsigned i:1;
} my_struct;

我认为将变量标记为unsigned而没有类型与将其标记为unsigned int相同。但是,我对结肠感到困惑。它有什么作用?我的猜测是它是某种初始化器,但我不知道它意味着什么。在我的头顶,我唯一期望在C中冒号的地方是三元运算符,这显然不是。所以,这似乎是一个我不熟悉的结构。任何人都可以在这个结构定义中解释冒号的目的是什么吗?声明unsigned i:1;究竟是什么意思?

1 个答案:

答案 0 :(得分:9)

它将i定义为1位宽。 如果给出i:x,那么它将i定义为x位宽。