gpt4 book ai didi

c++ - 通过 "int"、 "least"和 "fast"非固定宽度类型 C/C++ 允许编译器优化

转载 作者:太空狗 更新时间:2023-10-29 19:47:35 26 4
gpt4 key购买 nike

显然,当大小很重要时,应该使用固定宽度的整数类型。

然而,我读到(Insomniac Games style guide),当大小不重要时,循环计数器/函数参数/返回码/等应该首选“int”——给出的理由是固定宽度类型可以排除某些编译器优化。

现在,我想区分“编译器优化”和“更适合目标架构的 typedef”。后者具有全局范围,我的猜测可能影响非常有限,除非编译器能够以某种方式推断由此 typedef 参数化的程序的全局性能。前者具有本地范围,其中编译器可以根据本地寄存器压力/使用情况等自由优化使用的字节数和操作。

标准是否允许对非固定宽度类型进行“编译器优化”(正如我们定义的那样)?有什么好的例子吗?

如果不是,并且假设 CPU 可以在较小的类型上运行至少与较大的类型一样快,那么从性能的角度来看,使用根据本地上下文确定大小的固定宽度整数没有什么坏处。至少这提供了减轻套准压力的可能性,而且我认为不会更糟

最佳答案

经验法则是使用 int 的原因是标准将此整数类型定义为 CPU 的自然数据类型(前提是它的范围足够宽 INT_MININT_MAX。这就是最佳性能的来源。

关于c++ - 通过 "int"、 "least"和 "fast"非固定宽度类型 C/C++ 允许编译器优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54825215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com