gpt4 book ai didi

为枚举元素赋值的正确约定

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

gcc (Ubuntu/Linaro 4.6.1-9ubuntu2) 4.6.1
c89

为枚举元素赋值的正确约定是什么,这样就不会与其他枚举类型发生冲突?

我经常看到十六进制格式,我想知道这是什么原因吗?

在我的源代码中我有不止一种枚举类型,所以我做了以下事情:

typedef enum transfer_states_e {
/* Call transfer bind/supervised */
STATE_TRANSFER_IDLE = 0x1,

STATE_INIT_BLIND = 0x2,
STATE_INIT_SUPERVISED = 0x3,

STATE_INVOKE_BLIND = 0x4,
STATE_INVOKE_SUPERVISED = 0x5
} transfer_states_e;

typedef enum states_e {
/* Initial state */
STATE_IDLE = 0x6,
STATE_NULL = 0x7,
.
.
.
} states_e;

非常感谢您的任何建议,

最佳答案

没有必要让枚举值在您的项目中是唯一的,除非单个地址或变量可能包含属于多个枚举的值。这不太可能,但它可能是一种健全的措施。

枚举值可能以十六进制格式编码,以便于对进行网络通信的项目进行调试,因为像 Wireshark 这样的应用程序倾向于显示十六进制输出。更有可能的是,这只是程序员的个人喜好。

关于为枚举元素赋值的正确约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7480697/

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