【发布时间】:2012-02-14 14:04:57
【问题描述】:
现在我正在开发一个在代码的许多部分广泛使用 64 位无符号整数的项目。到目前为止,我们只使用 gcc 4.6 进行编译,但我们现在正在将一些代码移植到 windows。这些无符号整数必须是 64 位宽,这一点至关重要。有人建议我们可以使用 long long 但如果 long long 恰好大于 64 位,那就不好了,我们实际上希望保证它将是 64 位,并且编写类似 static_assert(sizeof(long long) == 8) 的东西似乎有点代码气味。
定义 uint64 之类的东西的最佳方法是什么,它将在 gcc 和 msvc 上编译,而无需在任何地方使用不同的代码语法?
【问题讨论】:
-
ifdef 和 typedef 一起可以解决问题吗?
-
@DavidFeurle,这可能就足够了,问这个问题的目的是了解这里的最佳实践。
标签: c++ visual-c++ gcc