2013-11-04 42 views
0

我正在使用Linux內核的Joystick API編寫一些代碼。在自述文件中的例子,它說使用這個語法:當我使用gcc來構建我寫這會產生一個錯誤代碼__u18 __s16等的新版本

struct js_event { 
    __u32 time; 
    __s16 value; 
    __u8 type; 
    __u8 number;  
}; 

呢。我實際上並不知道__u32部件的含義。 我用Google搜索,然後了一下,發現這個

如果包括stdint.h然後你中int8_t,uint8_t,int16_t,uint16_t等,他們是標準的C,即使是比較新的,實施標準。如果可以的話,我建議使用stdint.h,因爲它比__u8類型的系統特有的更少。

所以可能有人給我新的類型的列表和他們是什麼意思?此外,還介紹了角色類型實際上具有的內容。

回答

2

__u32和朋友是定義在<asm/types.h>中的特定於Linux內核的整數類型。

__u32是一個無符號的32位整數。
__s16是一個有符號的16位整數。
__u8是一個無符號的8位整數,依此類推。

由於您使用Linux內核API編寫代碼,您無需關心可移植性,而應該堅持Linux API和類型。

只是不要忘了

#include <asm/types.h> 

另見pointer to __u32 in a header file

+0

有關使用Linux與Linux的好點:P非常感謝。 – theoB610