比较来自世界各地的卖家的域名和 IT 服务价格

为什么 u8 u16 u32 u64 代替 unsigned int 在编程中 kernel

我在代码中看到了这一点 kernel 使用类型的类型 u8 u16 u32 u64. 我想知道你为什么需要使用
u8

或者
u16

或者
u32

或者
u64

, 但不是
unsigned int

?
已邀请:

卫东

赞同来自:

经常在靠近硬件或试图控制大小时/数据结构格式您需要准确控制整数的大小。

关于
u8

vs
uint8_t

, 那就是因为 Linux 前面
<stdint.h>

, 经济实惠的B. C, 这是技术上 C99-ism, 但是在我的经验中,即使在他们的模式下也是如此 ANSI-C / C89.
</stdint.h>

詹大官人

赞同来自:

我添加了你的 10 Cenches K.

:


u64

意味着价值 'unsigned 64 bits', 因此,取决于将执行的架构/编译代码,必须以不同的方式定义为真正具有长度 be 64 页。

例如,乘汽车 x86 长度
unsigned long

弥补 64 因此,位
u64

对于此机器,可以定义如下:


typedef unsigned long u64;


这同样适用于
u32

. 坐车 x86 长度
unsigned int

弥补 32 因此,位
u32

对于此机器,可以定义如下:


typedef unsigned int u32;


作为一项规则,公告
typedef

对于这些类型,在文件中
types.h

, 这对应于您编译源代码的架构。

要回复问题请先登录注册