gpt4 book ai didi

c - 位压缩结构中的数组

转载 作者:太空狗 更新时间:2023-10-29 15:22:51 26 4
gpt4 key购买 nike

我想要一个位压缩结构中的数组。我静态地知道数组的大小 (32),并且我希望数组中的每个元素都是一位。例如,我希望能够这样说:

struct example_s {
// ...
unsigned int flags[32] : 32;
} __attribute__((__packed__));

我已经尝试了几件事,但 gcc 不会让步。如果能做到这一点就好了,这样我就可以编写干净的代码来遍历打包数组中的元素。想法?

最佳答案

如果您只是将它放入一个(32 位)int 中,那么您可以像这样使用 for 循环干净地迭代这些位:

for (bit = 0; bit < 32; bit++)
flagValue = ((flags & (1<<bit)) != 0;

并不比数组索引语法更难编写。

如果您希望隐藏位运算以使代码更具可读性,您甚至可以使用函数或宏来访问这些位 - 例如GetFlag(位)

关于c - 位压缩结构中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299338/

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