有人可以解释一下使用库中uint32_t的重要性<stdint.h>吗?
Can someone explain the significance of using uint32_t from the library <stdint.h>?
我最近在代码厨师上看到了一些使用此变量类型和库的代码。我想知道是否有人能解释使用uint32_t
相对于int
、float
、double
等的好处。此外,在什么情况下我应该使用/不使用它?
链接到代码:http://www.codechef.com/viewsolution/131898
优点是uint32_t
始终保证为32位长,而不是长度取决于平台的基元类型。例如,虽然int
在x86和x86_64上是32位,但在许多其他64位平台上是64位,并且比一些较旧和/或嵌入式体系结构上的要低。
因此,使用uint32_t
可能是有益的情况之一,可能是当您直接向磁盘/网络读取二进制数据时。您总是可以将4个字节复制到uint32_t
中,并确保它适合。(然而,你仍然需要注意例如端序的差异。)
如果您只是想要可预测的上溢/下溢行为,则可能还需要使用uint32_t
。或者,如果你正在进行以特定大小定义的计算,比如运行一些哈希算法。
我唯一想知道的是为什么没有相应的float32_t
和float64_t
类型。:)
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- C++类 公共和私人领域的重要性
- 如何显式调用运算符<<
- 我想了解为什么在这个例子中使用引用函数?或者引用在c++函数中的重要性
- 在下面函数的返回中添加 const 限定符的重要性是什么?
- 模板操作员&lt;未打电话
- C / CUDA中的模板方法是3个角括号(&lt;&lt;&lt;)
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 错误:调用"std::vector<:vector<int>>::p ush_back(std::vector<std::__cxx11::basic_string<
- 使变量成为常数的重要性是什么?
- C 建造者Clang STD :: Sill,找不到超载的操作员&lt;
- 为什么STD :: MAP需要操作员&lt;以及我如何写一个
- 类相对于数据结构的重要性
- BFS中队列大小的重要性
- 为什么“操作员”需要const但不是为“运营商&lt;”
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一