c-struct-附加的“结构”是什么:1“;做什么?

c-struct-附加的“结构”是什么:1“;做什么?,c,struct,C,Struct,在下面的代码中“:1”部分在做什么 代码: struct trace_key { const char * const key; int fd; unsigned int initialized : 1; unsigned int need_close : 1; }; 这是一个好主意 现在您可能不太想使用它们(因为访问位字段的成本很高,而且内存增益通常可以忽略不计,除非内存中有数以千万计的struct trace\u key)

在下面的代码中“:1”部分在做什么

代码:

struct trace_key {
        const char * const key;
        int fd; 
        unsigned int initialized : 1;
        unsigned int  need_close : 1;
};
这是一个好主意

现在您可能不太想使用它们(因为访问位字段的成本很高,而且内存增益通常可以忽略不计,除非内存中有数以千万计的
struct trace\u key
)。在您的情况下,您最好编写以下代码:

struct trace_key {
    const char * const key;
    int fd; 
    bool initialized;
    bool need_close;
};
添加
#包括
(假设或更好)


顺便说一句,在我的机器上,
sizeof(struct trace\u key)
与位字段相同,或者在特定情况下与
bool
相同(因为
struct trace\u key
必须与字对齐,并且结尾填充大于
bool

这意味着您应该查阅文档。请参阅C中的
位字段programming@leppie如果我知道这意味着我可以使用谷歌,我会问,因为我不知道搜索帮助的关键字,我读过,但没有注意到这个功能。谢谢,我会用谷歌搜索。你也应该进行实验和基准测试。当然,我看到了git source trace.h的代码,通过查看源代码来学习c编程,谢谢。c<99中没有
bool
!好的,但我们是在2014年。谁在乎pre99 C标准?