首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新版本的__u8,__s16等

新版本的__u8,__s16等
EN

Stack Overflow用户
提问于 2013-11-04 18:08:04
回答 1查看 896关注 0票数 0

我正在使用linux内核的Joystick编写一些代码。在自述文件中的示例中,它说要使用以下语法:

代码语言:javascript
复制
struct js_event {
    __u32 time;  
    __s16 value;   
    __u8 type;   
    __u8 number;    
};

然而,当我使用gcc构建我编写的代码时,这会产生一个错误。我真的不知道__u32部分是什么意思。然后我搜索了一下,发现了这个

如果包含stdint.h,则得到int8_t、uint8_t、int16_t、uint16_t等。它们是标准C,即使它是更新的、实现较少的标准。如果可以的话,我建议您使用stdint.h,因为它比__u8这样的类型更不特定于系统。

那么谁能给我一份新类型的清单,以及它们的意思?此外,还降低了哪些角色类型实际具有。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-04 18:19:58

__u32和朋友是在<asm/types.h>中定义的整数类型,它们是特定于Linux的。

__u32是一个无符号的32位整数.

__s16是一个有符号的16位整数.

__u8是一个无符号8位整数,依此类推.

当您使用Linux内核API编写代码时,您不需要关心可移植性,而应该坚持使用Linux和类型。

只是别忘了

代码语言:javascript
复制
#include <asm/types.h>

也见u32 in a header file

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19774188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档