在32位硬件和64位硬件上处理32位整数,哪个更快?

时间:2012-03-08 09:23:04

标签: c linux

我在linux上编写C语言,在以下条件下哪个更快?

1.在32位硬件和64位硬件上处理32位整数

2.在32位硬件和64位硬件上处理64位整数

1 个答案:

答案 0 :(得分:1)

您应该知道具体的硬件和处理方式。

更重要的是,您应该对应用程序进行基准测试,同时考虑到过早优化是邪恶的

标准C99为您提供<stdint.h> fastint_t类型(以及其他类型,例如intptr_tint32_t ...);还有<inttypes.h>标准标题。

我相信你一开始不应该打扰。如果您知道某些整数数据类型非常对您的应用程序至关重要,那么您可以使用自己的typedef,例如。

typedef intfast_t myimportantint_t;

然后使用适当的myimportantint_t开发应用程序,并对其进行基准测试。然后,您可以轻松更改typedef。 (因此,更改重要整数的大小很容易,只需更改typedef并可能定义MYIMPORTANT_MAX预处理器常量等。)。

请参阅与您相关的this question

我相信你不应该那么在乎。

当然,许多32位处理器上的64位算术比32位算法更昂贵。