【发布时间】:2008-09-16 20:28:33
【问题描述】:
有没有办法在 C++ 中使用 64 位枚举?在重构一些代码时,我遇到了一堆 #defines,它们作为枚举会更好,但大于 32 位会导致编译器出错。
出于某种原因,我认为以下方法可能有效:
enum MY_ENUM : unsigned __int64
{
LARGE_VALUE = 0x1000000000000000,
};
【问题讨论】:
-
有理由更喜欢
unsigned __int64而不是uint64_t?我认为uint64_t是为几乎所有相关平台定义的,但unsigned __int64听起来像是一个平台(硬件、编译器甚至库)特定的定义。 -
@Johan
__int64是long long的 Microsoft-C++ 特定别名。