0

在 long 和 int 都是 4 个字节的系统上,这是最好的,为什么?

typedef unsigned long u32;

或者

typedef unsigned int u32;

注意: uint32_t 不是一个选项

4

3 回答 3

1

如今,每个平台都有stdint.h或其 C++ 等价物cstdint定义uint32_t. 请使用标准类型而不是创建自己的类型。

于 2014-02-14T12:21:30.133 回答
0

两者的尺寸相同,因此仅取决于您的使用情况。如果需要存储十进制值,请使用 long。

这里有一个更好和完整的答案: https ://stackoverflow.com/questions/271076/what-is-the-difference-between-an-int-and-a-long-in-c/271132

编辑:我不确定长小数,如果有人可以确认,谢谢。

于 2014-02-14T12:08:08.633 回答
0

既然你说标准uint32_t不是一个选项,那么在 32 位机器上使用longint都是正确的,我会说

typedef unsigned int u32;

稍微好一点,因为在两个流行的 64 位机器数据模型(LLP64 和 LP64)上,int仍然是 32 位,而long可能是 32 位或 64 位。查看64 位数据模型

于 2014-03-14T01:21:49.857 回答