我在linux上编写C语言,在以下条件下哪个更快?
1.在32位硬件和64位硬件上处理32位整数
2.在32位硬件和64位硬件上处理64位整数
答案 0 :(得分:1)
您应该知道具体的硬件和处理方式。
更重要的是,您应该对应用程序进行基准测试,同时考虑到过早优化是邪恶的。
标准C99为您提供<stdint.h>
fastint_t
类型(以及其他类型,例如intptr_t
或int32_t
...);还有<inttypes.h>
标准标题。
我相信你一开始不应该打扰。如果您知道某些整数数据类型非常对您的应用程序至关重要,那么您可以使用自己的typedef,例如。
typedef intfast_t myimportantint_t;
然后使用适当的myimportantint_t
开发应用程序,并对其进行基准测试。然后,您可以轻松更改typedef
。 (因此,更改重要整数的大小很容易,只需更改typedef并可能定义MYIMPORTANT_MAX
预处理器常量等。)。
请参阅与您相关的this question。
我相信你不应该那么在乎。
当然,许多32位处理器上的64位算术比32位算法更昂贵。