[英] What is the difference between intXX_t and int_fastXX_t?
我最近发现了标准fastest类型的存在,主要是int_fast32_t和int_fast64_t.
我总是被告知,为了在主流架构上正常使用,最好使用classic 的int&;long,它应该始终适合处理器的默认读取能力,从而避免无用的数字转换.
C99标准§7.18.1.3p2中规定:
"类型定义文件名int_fast N_t指定宽度至少为N的最快有符号整数类型.类型定义文件名称uint_fast N_t指定宽度至少为N的最快无符号整数类型."
在§7.18.1.3p1中也有一段关于它的引用:
"指定的类型并不能保证在所有情况下都是最快的;如果实现没有明确的理由选择一种类型而不是另一种类型,它只会选择满足符号性和宽度要求的整数类型."
我不清楚fastest到底意味着什么.我不明白什么时候该用,什么时候不该用.
我在谷歌上搜索了一下,发现大约有open,source,projects个人改变了部分功能,但不是全部.他们没有真正解释为什么要更改一部分代码和only部分代码.
你知道当int_fastXX_t比classic 的快really时,具体的情况/用法是什么吗?