用C语言中的uint8\u t表示布尔

用C语言中的uint8\u t表示布尔,c,data-structures,C,Data Structures,我是一个C语言的新手,试图理解我遇到的下面的结构 typedef struct { char struct1_name[32]; uint8_t is_initialized:1 } struct1_s; 我认为这里使用的不是bool“uint8”而是“1”。只是想知道“:1”是什么意思?这有什么意义?我相信这会在某个地方得到回答,但我不确定如何搜索,因此,任何描述上述内容的链接/示例都将非常有用。1是指定类型的显式大小(以位为单位) 例子 所以在这种情况下,有一个只有1位的无

我是一个C语言的新手,试图理解我遇到的下面的结构

typedef struct {
    char struct1_name[32];
    uint8_t is_initialized:1
} struct1_s;

我认为这里使用的不是bool“uint8”而是“1”。只是想知道“:1”是什么意思?这有什么意义?我相信这会在某个地方得到回答,但我不确定如何搜索,因此,任何描述上述内容的链接/示例都将非常有用。

1是指定类型的显式大小(以位为单位)

例子 所以在这种情况下,有一个只有1位的无符号int,这基本上是一个bool,正如我们所知

如果它是:3,那么它将有三个位,您可以在其中最多存储7个“值”,但它是:1只能存储0/1

它允许你把字体做得更小。例如,一个包含4个单元的结构可以通过这种方式放入一个字节中



iRC只适用于基于整数的类型。

相对较低的主题-声明不完整,您缺少结构的新名称。有很多重复:@链接的3个问题的“PHUCLV 2”不是C而是C++问题。C问题不是C++问题的复制品,这是2种不同的语言。C标准称位字段应该有一种类型,即一个合格的或不合格的版本:大多数编译器可能允许任何整数类型。