在枚举的起始值中,0和0x0000之间是否存在差异

Is there a difference between 0 and 0x0000 in the start value of an enum?

本文关键字:之间 0x0000 是否 存在 枚举      更新时间:2023-10-16

这是否会在枚举中将值存储或增加的方式改变?如果它们是相同的,为什么人们将其定义为0x000?

没有区别,这只是一个可读性。例如,它表明枚举值在某种二进制上下文中使用,例如Bitflags。

enum Flags {
    FLAG_NONE   = 0x0000,
    FLAG_READ   = 0x0001,
    FLAG_WRITE  = 0x0002,
    FLAG_APPEND = 0x0004,
    FLAG_TEXT   = 0x0008,
    FLAG_MEMMAP = 0x0010
};

no。
0x0000(附加0的附加时间)仅在十六进制中0。
有时,您在枚举中的所有数字都是十六进制。由于您的所有十六进制也只是定义了十六进制中的第一个,因为它看起来更干净。

这些特定值没有区别,它们完全相同。

但是,对于其他值,请记住,准备 0使其成为八十条的常数。这意味着您要避免使用诸如000001002010044等之类的值(为了使常量的长度保持相等)。