gpt4 book ai didi

c++ - 在什么情况下我应该为 C++11 中的枚举类使用固定宽度的整数

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

我应该在什么情况下使用它:

enum class MyFixedType : uint32_t // or any other fixed width integer type
{
ID1,
ID2,
ID3
};

关于这个:

enum class MyType
{
ID1,
ID2,
ID3
};

?

最佳答案

一些可能有用的场景超出了我的脑海:

  1. 空间有限,您真的不需要标准的 int 大小的枚举。如果您使用的系统中整数以 64 位格式存储,并且您只有少于 255 个不同的枚举值,则您可能需要指定您希望/需要每个枚举元素的位数更少。

  2. 机器之间的高效通信。假设您知道在两台机器上使用相同的字节顺序,但整数具有不同的默认大小,那么使用固定宽度的枚举可能会更有效,因为您可以传递一些位,而不是序列化消息。

  3. 您的枚举中可能有一个重要的顺序,并且您可能希望当您使用运算符 + 添加两个枚举时,当您添加 2 个元素时,生成的元素永远不会在您的 2 个元素之间(这可能发生在enum-values 的一部分是负数,就像在标准实现中一样)。

我猜其中大部分只在嵌入式情况下很重要。例如,当您需要为微波炉甚至信用卡芯片执行程序时,您没有几 GB 的内存,而是几个字节。

关于c++ - 在什么情况下我应该为 C++11 中的枚举类使用固定宽度的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24166308/

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