【发布时间】:2021-06-21 02:16:37
【问题描述】:
我正在维护一个包含以下枚举类型定义的项目。枚举值用于 一个组合框。
-
为什么要像这样以十六进制定义枚举类型,以提高性能?
-
xxxxx920P3 实际上是负值-2147483648 而 xxxxx920P2 是正值,会导致条件代码失败。下一个值将是 xxxxx920P3 的两倍,那么这个枚举定义规则有什么替代解决方案吗?谢谢。
-
这是一个 QT c++ 项目。我可以将枚举类型定义为 ULONGLONG 吗?
enum Version { xxxxx = 0x00000000, xxxxx400 = 0x00000001, xxxxx401 = 0x00000002, xxxxx410 = 0x00000004, xxxxx411 = 0x00000008, xxxxx412 = 0x00000010, xxxxx420 = 0x00000020, xxxxx430 = 0x00000040, xxxxx431 = 0x00000080, xxxxx432 = 0x00000100, xxxxx440 = 0x00000200, xxxxx500 = 0x00000400, xxxxx510 = 0x00000800, xxxxx520 = 0x00001000, xxxxx521 = 0x00002000, xxxxx600 = 0x00004000, xxxxx611 = 0x00008000, xxxxx620 = 0x00010000, xxxxx621 = 0x00020000, xxxxx700 = 0x00040000, xxxxx910 = 0x00080000, xxxxx910P5 = 0x00100000, xxxxx910P6 = 0x00200000, xxxxx910P11 = 0x00400000, xxxxx910P12 = 0x00800000, xxxxx910P13 = 0x01000000, xxxxx910P14 = 0x02000000, xxxxx910P15 = 0x04000000, xxxxx910P16 = 0x08000000, xxxxx920 = 0x10000000, xxxxx920P1 = 0x20000000, xxxxx920P2 = 0x40000000, xxxxx920P3 = 0x80000000, }; Versions newVersions = (Version)mComboBox->itemData(inIndex).toUInt(); if ( newVersions < xxxxx500) //now newVersions is a negative value { } else { }
【问题讨论】: