gpt4 book ai didi

c - Objective-C/C 给出枚举默认值

转载 作者:太空狗 更新时间:2023-10-30 03:26:24 25 4
gpt4 key购买 nike

我在某处读到过像这样给枚举默认值:

typedef enum  {
MarketNavigationTypeNone = 0,
MarketNavigationTypeHeirachy = 1,
MarketNavigationTypeMarket = 2
} MarketNavigationLevelType;

.. 但我不记得这样做的值(value)。如果我不给它们默认值——然后有人对枚举重新排序——有什么风险?

如果我总是使用枚举名称,甚至不通过它们的整数值来引用它们,会有什么风险吗?

我能想到的唯一可能的问题是,如果我从数据库的 int 值初始化枚举 - 并且枚举被重新排序 - 那么应用程序就会中断。

最佳答案

这不是默认值,您为它们提供了它们将始终具有的值。

如果您不显式初始化它们,则第一个枚举器值为零。对于所有其他的,如果没有初始化器,它们的值是前一个枚举器的值加一。

给它们明确的值有两个原因:

  • 您不希望他们拥有他们原本拥有的值(value)观
  • 您想明确说明它们的值(value)(对您或其他开发者而言)

如果您总是通过它们的名称来引用它们并且从不显式地使用整数值进行比较或赋值,则不需要显式地给它们赋值。

关于c - Objective-C/C 给出枚举默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2832606/

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