我不明白这个结构定义。这对我来说似乎是违法的,但显然不是:
typedef struct
{
unsigned i:1;
} my_struct;
我认为将变量标记为unsigned
而没有类型与将其标记为unsigned int
相同。但是,我对结肠感到困惑。它有什么作用?我的猜测是它是某种初始化器,但我不知道它意味着什么。在我的头顶,我唯一期望在C中冒号的地方是三元运算符,这显然不是。所以,这似乎是一个我不熟悉的结构。任何人都可以在这个结构定义中解释冒号的目的是什么吗?声明unsigned i:1;
究竟是什么意思?
答案 0 :(得分:9)
它将i定义为1位宽。 如果给出i:x,那么它将i定义为x位宽。