有没有理由不使用固定宽度类型?

时间:2017-01-30 03:37:28

标签: c++

我是C ++的新手。 我正在学习类型,它们的内存使用以及基于体系结构的内存大小的差异。使用固定宽度类型有什么缺点,比如int32_t?

3 个答案:

答案 0 :(得分:4)

唯一真正的缺点可能是您希望代码可以移植到 32位整数类型的系统。在实践中,这些非常罕见,但它们都在那里。

C ++可以通过cstdint访问C99(和更新的)整数类型,这样您就可以访问int_leastN_tint_fastN_t类型,这些类型可能是最便携的你的代码中的特定位宽,如果你真的碰巧关心它。

答案 1 :(得分:2)

int类型的原始意图是它代表您运行的体系结构的自然大小;你可以假设它上面的任何操作对整数类型来说都是最快的。

现在情况比较复杂。缓存效果或向量指令优化可能有利于使用小于自然大小的整数类型。

显然,如果您的算法需要int 至少一定的大小,那么您最好不要明确它。

答案 2 :(得分:0)

E.g。

要节省空间,请使用int_least32_t

为节省时间,请使用int_fast32_t

但实际上,我个人经常使用long(至少32位)和int(至少16位),因为它们更容易输入。

(此外,int32_t是可选的,不保证存在。)