int32_t和int_fast32_t之间的区别

int32_t和int_fast32_t之间的区别,第1张

概述参见英文答案 > What is the difference between intXX_t and int_fastXX_t?                                    4个 两者有什么区别?我知道无论环境如何,int32_t都是32位,但正如它的名字暗示它的速度快,int_fast32_t与int32_t相比要快多少?如果它明显更快,那么为什么呢? C是根据理想化 参见英文答案 > What is the difference between intXX_t and int_fastXX_t?4个
两者有什么区别?我知道无论环境如何,int32_t都是32位,但正如它的名字暗示它的速度快,int_fast32_t与int32_t相比要快多少?如果它明显更快,那么为什么呢?解决方法 C是根据理想化的抽象机器指定的.但是,真实世界的硬件具有语言标准未捕获的行为特征. _fast类型是类型别名,允许每个平台指定对硬件“方便”的类型.

例如,如果你有一个8位整数数组并希望单独改变每个整数,那么在当代桌面机器上这将是相当低效的,因为它们的加载 *** 作通常要填充整个处理器寄存器,即32或64位宽(“机器字”).因此,浪费了大量加载的数据,更重要的是,您无法并行化两个相邻数组元素的加载和存储,因为它们存在于同一个机器字中,因此需要按顺序进行加载 – 修改 – 存储.

如果可行,_fast类型通常与机器字一样宽.也就是说,它们可能比您需要的更宽,因此消耗更多内存(因此更难以缓存!),但您的硬件可能能够更快地访问它们.但这完全取决于使用模式. (例如,一个int_fast8_t数组可能是一个机器字数组,修改这样一个数组的紧密循环可能会有很大的好处.)

找出它是否有所作为的唯一方法是比较!

总结

以上是内存溢出为你收集整理的int32_t和int_fast32_t之间的区别全部内容,希望文章能够帮你解决int32_t和int_fast32_t之间的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1237134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存