gpt4 book ai didi

c - 关于 C 结构成员

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:47 24 4
gpt4 key购买 nike

我正在研究其他成员编写的代码,我发现了如下所示的代码:

struct myType
{
int myInt : 1;
int reserved : 31;
};

上面的1和31代表什么,什么时候用上面的表示法?

最佳答案

那些是位字段,冒号后的数字指定为该字段保留的宽度(以位为单位)。它们通常在尝试节省空间时使用,或者在尝试映射具有位域的外部(想想硬件拥有的)寄存器时使用。请注意,打包和字节序会影响位在内存中的布局方式,因此如果可移植性很重要,则不要使用它们。

请注意,使用非常小的带符号位字段(例如 1)是一个非常糟糕的主意。由于符号需要一位,因此没有位留给实际值,这通常不是一个很好的情况。使用 unsigned int myUnsigned : 1 解决了这个问题。

关于c - 关于 C 结构成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com