枚举的起始值是0和0x0000之间有区别吗?

Jus*_*tin 2 c++ enums

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

Joh*_*ica 6

没有区别,它只是一个可读性的东西.例如,它表示枚举值用于某种二进制上下文,例如bitflags.

enum Flags {
    FLAG_NONE   = 0x0000,
    FLAG_READ   = 0x0001,
    FLAG_WRITE  = 0x0002,
    FLAG_APPEND = 0x0004,
    FLAG_TEXT   = 0x0008,
    FLAG_MEMMAP = 0x0010
};
Run Code Online (Sandbox Code Playgroud)