我正在使用linux内核的Joystick编写一些代码。在自述文件中的示例中,它说要使用以下语法:
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这样的类型更不特定于系统。
那么谁能给我一份新类型的清单,以及它们的意思?此外,还降低了哪些角色类型实际具有。
发布于 2013-11-04 18:19:58
__u32和朋友是在<asm/types.h>中定义的整数类型,它们是特定于Linux的。
__u32是一个无符号的32位整数.
__s16是一个有符号的16位整数.
__u8是一个无符号8位整数,依此类推.
当您使用Linux内核API编写代码时,您不需要关心可移植性,而应该坚持使用Linux和类型。
只是别忘了
#include <asm/types.h>https://stackoverflow.com/questions/19774188
复制相似问题