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_t
和uint32_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?