gpt4 book ai didi

c - typedef 枚举,在其中赋值

转载 作者:太空狗 更新时间:2023-10-29 16:42:44 24 4
gpt4 key购买 nike

用 gcc C99 编译

我使用枚举已有一段时间了。但是,我正在使用一些示例代码来开发我的应用程序。我遇到了一些这样的代码。我被告知这是使用枚举时的最佳实践。但我看不出这有什么好处。

typedef enum {
TYPE_DATE,
TYPE_TIME,
TYPE_MONEY,

TYPE_COUNT,
TYPE_UNKNOWN = TYPE_COUNT
} string_type_e;

为什么要有 TYPE_COUNT,为什么要将 TYPE_COUNT 分配给 TYPE_UNKNOWN

非常感谢您的任何建议,

最佳答案

默认情况下,枚举由编译器自动赋予从 0 开始的整数值。所以日期将为零,时间为一,金钱为二。下一个值赋予“伪”枚举值 TYPE_COUNT ,这将得到值 3,这恰好是“正确”枚举值的数量。

TYPE_UNKNOWN是另一个表示不是“正确”值的值,因此将无法通过测试 e < TYPE_COUNT .等于TYPE_COUNT意味着每个不同的有意义的值都是连续的,但我不知道这有什么显着的优势(如果 TYPE_COUNT 小于 2 的幂,这可能会影响编译器可以使用的表示形式,以及它的“很好”让值连续,但这并不重要,因为无论如何你都不会增加它们超过 TYPE_COUNT)

关于c - typedef 枚举,在其中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/694812/

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