【问题标题】:Should I use C types (uint8_t/.../uint64_t) or (u_int8_t/.../u_int64_t)?我应该使用 C 类型 (uint8_t/.../uint64_t) 还是 (u_int8_t/.../u_int64_t)?
【发布时间】:2017-03-23 14:31:58
【问题描述】:

我的 GNU-Linux 平台 (debian stretch) 有 C 类型 u_int8_tu_int16_tu_int32_tu_int64_t 在文件 sys/types.h 中定义,而 uint8_tuint16_tuint32_tuint64_tstdint.h 中定义。我发现这些类型在练习 X86-64 汇编语言和与 C 交互的过程中很有用。有什么理由让我更喜欢一个头文件而不是另一个头文件(无论是“最佳实践”、可移植性等)吗? C++ 的答案有什么不同吗?

【问题讨论】:

标签: c++ c


【解决方案1】:

stdint.h 是标准 C,映射到标准 C++ 中的cstdint

sys/types.h 不是可移植的 C。

【讨论】:

  • 确实,sys 中没有任何东西是可移植的。这就是为什么它是sys
  • 什么是cstdint
  • @ryyker cstdint header.
  • @JohnZwinck-- sys/types.h is POSIX,但没有指定 u_intN_t 类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 2020-02-13
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多