【发布时间】:2013-08-10 14:40:45
【问题描述】:
当我在 c 中学习数据类型时。我遇到了int_fast8_t 和int_least8_t 数据类型。我不知道这些,所以我用谷歌搜索了它。我在这里找到了一些答案:
The difference of int8_t, int_least8_t and int_fast8_t?
答案是int_fast8_t 是最快的,但令我惊讶的是什么东西让它变得更快。编译器使用什么技术使其快速?而且,当存在 int 数据类型和 short,long 修饰符来修改 int 大小时。这个 (int_fast8_t) 数据类型需要什么?
如果int_fast8_t 更快,那么我们可以简单地忽略int 并始终使用int_fast8_t,因为每个人都需要速度。
int_fast8_t 有什么限制吗? int_fast8_t and int之间有什么优缺点。
【问题讨论】:
-
好吧,从
int与int_fast8_t的位宽开始可能会有所不同,这意味着您不能真正安全地使用int_fast8_t,除非它是一个8 位整数。跨度> -
最终,使用它就像你被限制在那个确切的位数一样。唯一要处理的问题是上溢/下溢,在这种情况下,您应该使用最小宽度类型。如果您知道自己在做什么或知道某些内容不会溢出,那么快速类型可能是有益的。安全第一。 :-)
-
即使是最小宽度类型也不会定义上溢/下溢。不能保证在给定的架构上会有一个确切大小的类型,例如,有些架构 int_least32_t 可能是 36 位。
标签: c