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

时间:2018-05-08 11:33:33

标签: c cpu-architecture

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

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

(我特别感兴趣的是支持运行Linux,Windows或Mac OS的计算机。)

2 个答案:

答案 0 :(得分:2)

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

您可以找到例外情况。一些大型机和收银机可能使用1的补码和更罕见的签名幅度方案。你可能会发现很难让你的代码在这样的机器上运行,但是,你想要它吗?

答案 1 :(得分:2)

所以我发现了:

并且从https://en.wikipedia.org/wiki/Word_(computer_architecture)开始,似乎人们几乎可以依赖于自1978年以来制造的机器上的8位,16位和32位整数(但不一定是64位整数)的硬件支持。