我想知道uint32_t
和uint32
之间有什么区别,当我查看头文件时它有这个:
types.h:
/** @brief 32-bit unsigned integer. */
typedef unsigned int uint32;
stdint.h:
typedef unsigned uint32_t;
这只会带来更多问题: 有什么区别
unsigned varName;
和
unsigned int varName;
我正在使用MinGW.
答案 0 :(得分:20)
unsigned
和unsigned int
是同义词,非常类似于unsigned short [int]
和unsigned long [int]
。
uint32_t
是(可选)由C标准定义的类型。 uint32
只是你编造的名字,虽然碰巧被定义为同一个东西。
答案 1 :(得分:6)
没有区别。
在您的案例中 unsigned int = uint32 = uint32_t = unsigned
,unsigned int = unsigned
始终
答案 2 :(得分:2)
unsigned
和unsigned int
之间完全没有区别。
该类型是否与uint32_t
匹配良好,但依赖于实现; int
可能比32位短“。
答案 3 :(得分:1)
unsigned
和unsigned int
是同义词;它们都意味着" CPU架构/平台最自然大小的无符号整数",它在现代平台上经常(但绝不总是)32位。
<stdint.h>
是C99中的标准头,它应该使用uint32_t
命名约定为特定大小的整数提供类型定义。
您正在查看的<types.h>
似乎是非标准的,可能属于您的项目正在使用的某个框架。其uint32
typedef与uint32_t
兼容。您是否应该在代码中使用其中一个是您的经理的问题。