gpt4 book ai didi

编译的枚举常量

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

Enum 在 C 中是否被替换为 #define

例如,如果我有一个标志列表,例如:

enum{
STATE_0 = 0x1<<0,
STATE_1 = 0x1<<1,
STATE_2 = 0x1<<2,
STATE_3 = 0x1<<3,
.
.
.
}

当编译代码时,值将具有语句或精确语句的评估结果,如使用 #define .

例如,STATE_2 将被评估为 40x1<<2

PS:混淆的原因是我没有看到关于 enum 的答案。对比#define问题指出对于简单表达式枚举比 #define 更快,如果编译器优化被禁用。

最佳答案

C 中的枚举不像#defines 那样工作。枚举是语言的一部分,不会被预处理器处理,因此 STATE_2 将被评估为 4。

关于编译的枚举常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25118405/

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