我是C ++的新手。 我正在学习类型,它们的内存使用以及基于体系结构的内存大小的差异。使用固定宽度类型有什么缺点,比如int32_t?
答案 0 :(得分:4)
唯一真正的缺点可能是您希望代码可以移植到 32位整数类型的系统。在实践中,这些非常罕见,但它们都在那里。
C ++可以通过cstdint
访问C99(和更新的)整数类型,这样您就可以访问int_leastN_t
和int_fastN_t
类型,这些类型可能是最便携的你的代码中的特定位宽,如果你真的碰巧关心它。
答案 1 :(得分:2)
int
类型的原始意图是它代表您运行的体系结构的自然大小;你可以假设它上面的任何操作对整数类型来说都是最快的。
现在情况比较复杂。缓存效果或向量指令优化可能有利于使用小于自然大小的整数类型。
显然,如果您的算法需要int
至少一定的大小,那么您最好不要明确它。
答案 2 :(得分:0)
E.g。
要节省空间,请使用int_least32_t
为节省时间,请使用int_fast32_t
但实际上,我个人经常使用long
(至少32位)和int
(至少16位),因为它们更容易输入。
(此外,int32_t
是可选的,不保证存在。)