我已经看到一些代码,他们不直接使用原始类型int,float,double等.他们通常键入它并使用它或使用像uint_8等.
这些日子真的有必要吗?或者C/C++足够标准化,最好直接使用int,float等.
Cha*_*tin 17
由于类型,如char,short,int,long,等等,是一把双刃剑:他们赖以生存的底层硬件上.回到C基本上被认为是匆忙的人们的汇编语言的时代,这没关系.现在,为了编写可移植的程序 - 这意味着"在任何机器上具有相同意义的程序" - 人们已经构建了特殊的库,typedefs并#defines允许它们制作与机器无关的定义.
密码非常简单.在这里,你有uint_8,它被解释
u 对于 unsignedint 说它被视为一个数字_8 以比特为单位.换句话说,这是一个8位(最小)的无符号整数,或者我们以前在C历史的迷雾中调用的"unsigned char".
uint8_t是无用的,因为由于标准中的其他要求,它存在,当且仅当unsigned char是8位,在这种情况下你可以使用unsigned char.然而,其他的非常有用.int在大多数现代平台上是(并且可能永远是)32位,但在一些古老的东西上,它是16位,而在一些罕见的早期64位系统上,int是64位.它当然也可以是DSP上的各种奇数尺寸.
如果您想要32位类型,请使用int32_t或uint32_t,依此类推.它比检测类型大小并试图自己使用正确类型的所有令人讨厌的遗留黑客更清洁,更容易......
基本类型的宽度通常取决于系统,而不仅仅是 C++ 标准或编译器。例如,如果您在进行科学计算时希望跨平台实现真正的一致性,则应该使用特定的uint_8或其他任何东西,以便在不同的机器上出现相同的错误(或浮点数的精度错误),从而使内存开销相同, ETC。
| 归档时间: |
|
| 查看次数: |
18733 次 |
| 最近记录: |