gpt4 book ai didi

c++ - 2位大小变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:37 25 4
gpt4 key购买 nike

我需要定义一个结构,它具有大小为 2 位和 6 位的数据成员。我应该为每个成员使用 char 类型吗?或者,为了不浪费内存,我可以使用类似 :2\:6 的类型吗?符号?我怎样才能做到这一点?我可以为 2 位或 6 位类型定义 typedef 吗?

最佳答案

你可以使用类似的东西:

typedef struct {
unsigned char SixBits:6;
unsigned char TwoBits:2;
} tEightBits;

然后使用:

tEightBits eight;
eight.SixBits = 31;
eight.TwoBits = 3;

但是,老实说,除非您必须遵守应用程序外部的打包数据,或者您处于非常内存受限的情况下,否则这种内存节省通常不是值得。如果代码不必一直使用按位和移位操作打包和解包数据,您会发现代码会快很多。


另外请记住,使用 _Boolsigned intunsigned int 以外的任何类型都是实现的问题。具体来说,unsigned char 可能无法在任何地方工作。

关于c++ - 2位大小变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600153/

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