gpt4 book ai didi

c - C 中的枚举和字符串

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

我有一个 char* 字符串进来。我需要相应地存储它。

字符串可以是这些值中的任何一个 { UK, GD, BD, ER, WR, FL}

如果我想将它们保留为枚举类型,最好使用哪种数据类型。就像对于 6 个值,三位就足够了,但是如何在 C 中存储三位?

最佳答案

你想要的是一个Bit Field :

typedef struct {
unsigned char val : 2; //use 2 bits
unsigned char : 6; // remaining 6 bits
} valContainer;

...

valContainer x;
x.val = GD;

请注意,实际上并没有一种方法可以存储少于一个字节,因为字节的定义是计算机可以寻址的最小内存量。这只是一种将名称与字节中的不同位相关联的方法。

此外,当然,2 位对于 6 个值是不够的(2 位包含 4 个不同的值)。所以你真的需要至少 3 位(8 个不同的值)。

关于c - C 中的枚举和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188070/

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