在一个系统中,long和int都是4个字节,这是最好的,为什么?
typedef unsigned long u32;
或
typedef unsigned int u32;
注意:uint32_t不是一个选项
答案 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位计算机上使用long
和int
都是正确的,我会说
typedef unsigned int u32;
稍好一些,因为在两个流行的64位机器数据模型(LLP64和LP64)上,int
仍然是32位,而long
可能是32位或64位。见64-bit data models