Dav*_*ica 1 c c++ size int int32
在大多数实现中,我已经看到uint32_t定义为
typedef unsigned int uint32_t;
Run Code Online (Sandbox Code Playgroud)
但据我了解ints的并不总是保证是4个字节的所有系统.因此,如果系统有非4字节整数,uint32_t保证4 如何?
需要一个实现来uint32_t正确定义(或者根本不定义,如果不可能).
如果unsigned int满足要求(32位宽,无填充位),则实现可以将其定义为
typedef unsigned int uint32_t;
Run Code Online (Sandbox Code Playgroud)
如果没有,但unsigned long确实符合要求,则可将其定义为:
typedef unsigned long uint32_t;
Run Code Online (Sandbox Code Playgroud)
或者,如果合适,它可以使用不同的无符号类型.
该<stdint.h>标题必须是与它与使用的编译器兼容.如果你把一个<stdint.h>无条件地定义标题uint32_t为unsigned int,并用一个编译器,使得用它unsigned int16位,其结果必然是不符合要求的实现.
可以通过定制头到编译器,或者通过编写头来保持兼容性,使其适应编译器的特性.
作为一名程序员,你不必担心如何保持正确性(尽管当然好奇并没有错).你可以依赖它正确完成 - 或者你可以向提供者抱怨一个严重的错误.
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |