uint32_t 和 u_int32_t 的区别

Posted

技术标签:

【中文标题】uint32_t 和 u_int32_t 的区别【英文标题】:Difference between uint32_t and u_int32_t 【发布时间】:2011-02-23 12:12:51 【问题描述】:

u_int32_tuint32_t 有什么区别?

【问题讨论】:

后者在 C99 的头文件stdint.h 中定义。前者不是。从lists.freedesktop.org/archives/release-wranglers/2004-August/… 看来,在 BSD Unix 中可能使用了 u_ 形式?无论如何,你应该在你的代码中使用uint32_t @Conrad 为什么这是评论而不是答案? @Core Xii:耸耸肩。在回复之前我从未听说过 u_int32_t,我不是这方面的权威人士。 【参考方案1】:

uint32_t 是标准 C99 类型 u_int32_t 在某些 POSIX 实现内部使用。

【讨论】:

What is POSIX? 这个链接回答了我想到的问题。【参考方案2】:

正如其他人所提到的,uint32_t 是标准的 C99 类型。

无论如何,如果您要编写可移植的 C 代码或 C 头文件以在不同的设备/架构之间共享,则可以使用 stdint.h。

【讨论】:

【参考方案3】:

uint32_t 是标准 C99,而 u_int32_t 用于某些 Unix 平台。

【讨论】:

【参考方案4】:

变量类型uint32_t是根据所谓的C99标准定义的无符号32位整数数据类型。并非所有编译器都符合该标准。而 u_int32_t 用于一些内部实现。

【讨论】:

以上是关于uint32_t 和 u_int32_t 的区别的主要内容,如果未能解决你的问题,请参考以下文章

uint32_t 和 size_t 的 printf 格式说明符

uint8_t / uint16_t / uint32_t /uint64_t数据类型详解

uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结

什么是 uint_fast32_t,为什么要使用它来代替常规的 int 和 uint32_t?

动态整数大小:int64_t、int32_t、uint32_t 等

从uint32_t [16]数组到uint32_t变量序列的64位副本