uint32的typedef的最佳实践

时间:2014-02-14 11:59:34

标签: typedef uint32

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

typedef unsigned long u32;

typedef unsigned int u32;

注意:uint32_t不是一个选项

3 个答案:

答案 0 :(得分:1)

现在每个平台都有stdint.h或其C ++等效cstdint,它们定义uint32_t。请使用标准类型而不是创建自己的类型。

答案 1 :(得分:0)

两者之间的大小相同,因此仅取决于您的使用。 如果需要存储十进制值,请使用long。

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

编辑:如果有人可以确认,我不确定十进制数,谢谢。

答案 2 :(得分:0)

由于您说标准uint32_t不是一个选项,因此在32位计算机上使用longint都是正确的,我会说

typedef unsigned int u32;

稍好一些,因为在两个流行的64位机器数据模型(LLP64和LP64)上,int仍然是32位,而long可能是32位或64位。见64-bit data models