我打算编写一个我想要跨平台的 C++ 库。我只是想知道是否必须允许缺少任何 64 位整数类型的平台。
我知道有带有 C 编译器的 8 位或 16 位嵌入式系统具有 32 位整数但缺少 64 位整数(例如 MSP430,至少在历史上是这样),但对于此类系统的任何 C++ 编译器来说都是如此吗?
上下文:我实际上想将我的一个简单的伪随机数生成器C 库移植到 C++。C 库主要处理 32 位整数,但有一些可选的 64 位 API。此外,32 位代码可以使用 64 位实现(非常简单)进行一些内部计算,或者使用仅 32 位实现(更复杂)。C 头文件必须#ifdef UINT64_C
启用/禁用 64 位 API。C 文件必须#ifdef UINT64_C
在某些功能的 64 位或仅 32 位实现之间进行选择。那么,我是否必须为 C++ 库做同样的事情,或者这是一个uint64_t
始终可用的安全假设?