这个结构定义中的冒号是什么?
问题描述:
我不明白,这个结构的定义。这似乎违法给我,但显然它不是:
typedef struct
{
unsigned i:1;
} my_struct;
我认为,这标志着变量作为unsigned
没有一个类型是一样的标记为unsigned int
。但是,我完全被冒号困扰。它有什么作用?我的猜测是这是某种初始化工具,但我不知道它的意思。在我的头顶上,我期望C中只有一个冒号的地方在三元运算符中,这显然不是。所以,这似乎是一个我不熟悉的构造。任何人都可以解释在这个结构定义中冒号的目的是什么?声明unsigned i:1;
是什么意思?
答
它将i定义为1位宽度。 如果i:x给出,那么它定义我为x位宽。