精确宽度整数的实用可移植性

Practical portability of exact-width integers

7.20.1.1p3 提到精确宽度整数 ({u,}int{8,16,32,64}_t) 是可选的。

如果我使用它们,它实际上会如何限制我的软件的可移植性?

(我对支持机器特别感兴趣 运行 Linux、Windows 或 Mac OS。)

作为一个非常好的经验法则,任何具有 CPU 使用 2 的补码 signed 类型的机器都完全支持精确宽度整数。

你最好找到一个例外。一些大型机和收银机可能使用 1 的补码和更罕见的带符号幅度方案。您可能会发现很难在这样的机器上获取您的代码 运行,但是您想要它吗?

所以我发现了什么:

并且从 https://en.wikipedia.org/wiki/Word_(computer_architecture) 看来,人们几乎可以指望硬件支持 8 位、16 位和 32 位整数(但不一定是 64 位整数)大约是从大约1978.