2

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

4

3 回答 3

7

没有区别,它只是一个可读性的东西。例如,它表明枚举值用于某种二进制上下文中,例如位标志。

enum Flags {
    FLAG_NONE   = 0x0000,
    FLAG_READ   = 0x0001,
    FLAG_WRITE  = 0x0002,
    FLAG_APPEND = 0x0004,
    FLAG_TEXT   = 0x0008,
    FLAG_MEMMAP = 0x0010
};
于 2012-10-22T19:03:11.670 回答
2

没有。
0x0000 (添加任意数量的 0)只是十六进制的 0。
有时枚举中的所有数字都是十六进制的。由于所有的十六进制数你只需要定义第一个十六进制数,因为它看起来更干净。

于 2012-10-22T19:04:20.763 回答
0

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

但对于其他值,请记住,前置0使其成为八进制常数。这意味着您要避免使用000, 001, 002, 010,等值044(以保持常量的长度相等)。

于 2012-10-22T19:28:14.340 回答