0

ab具有相同的输出:

int a = 0xEFEFEFEF;
long b = 0xEFEFEFEF;
cout << a << endl << b << endl; 

我听说一个long类型有更多的计算处理时间,因为long应该转换int为计算。真的是int更快long吗?

4

1 回答 1

5

这个问题不可能在某种意义上普遍回答是否long比 快int

该代码可以在具有 32 位long和 16 位的 16 位平台上运行,在该平台intint可能会更快 - 但不一定。另一方面,在具有 32-bitint和 64-bit的本机 32-bit 平台上longlong可能会更快 - 但不一定。

所以它依赖于平台,依赖于编译器。最重要的是,通常对目标 CPU 的本机字长类型的操作并不比可能需要将宽度转换为本机大小的操作慢(通常更快)。

于 2012-06-22T13:50:17.697 回答