C ++ 11 uint类型vs u_int

时间:2014-04-25 11:08:42

标签: c++11 uint cstdint

我偶然发现了类型u_int8_t,因为它没有在Windows + MinGW中编译(但在Linux下编译得很好)。根据{{​​3}},C ++ 11标准定义了类型uint8_t。我只是使用后者,一切正常。

出现的问题是:

  1. u_int8_tuint8_t之间有什么区别吗?
  2. 是否有理由(除了遗留代码)使用u_int8_t
  3. 如果我使用C ++ 11编译器(在不同的操作系统或架构上),假设uint8_t将会出现是否安全?
  4. 上述问题的答案是否也适用于其他类型(intX_tuintX_t)?

1 个答案:

答案 0 :(得分:10)

  

u_int8_tuint8_t之间有什么区别吗?

u_int8_t只是一个非标准的旧名称。避免它。

  

是否有理由(除了遗留代码)使用u_int8_t

同事自杀。

  

如果我使用C ++ 11编译器(在不同的操作系统或体系结构上),假设uint8_t会出现,是否安全?

C ++标准要求它出现在所有具有无符号8位类型的实现上(今天这意味着一切都不是奇特的)。

  

上述问题的答案是否也适用于其他类型(intX_tuintX_t)?

差不多,是的。