c ++跨平台方式定义64位无符号整数

shu*_*e87 4 c++ gcc visual-c++

现在我正在研究一个在代码的许多部分中广泛使用64位无符号整数的项目.到目前为止,我们只使用gcc 4.6编译,但我们现在将一些代码移植到Windows.这些无符号整数是64位宽是至关重要的.有人建议我们可以使用long long但是如果long long大于64位并不好,我们实际上希望保证它会是64位并写一些类似static_assert(sizeof(long long) == 8)代码的东西.

定义类似uint64的最佳方法是什么,它将在gcc和msvc之间进行编译,而不需要在任何地方使用不同的代码语法?

Inb*_*ong 14

包括cstdint和使用std::uint64_t怎么样?