typedef __u16 __bitwise __le16;
在Linux內核中的含義是什麼?什麼是「typedef __u16 __bitwise __le16;」意味着在Linux內核?
其實,這裏「le」是什麼意思? 我隱約可以看到這是一個無符號的16位int?
感謝您的幫助。
typedef __u16 __bitwise __le16;
在Linux內核中的含義是什麼?什麼是「typedef __u16 __bitwise __le16;」意味着在Linux內核?
其實,這裏「le」是什麼意思? 我隱約可以看到這是一個無符號的16位int?
感謝您的幫助。
類型標識符
以下類型標識符對應U16,U32,和U64的類型,除了它們與按位屬性,這是用來定義限制它們作爲整數使用。在對變量執行其他(不安全)操作之前,稀疏實用程序將使用bitwise屬性來確保將變量轉換爲本地處理器類型。
在包含linux/kernel.h頭文件後,可以使用以下類型用於endian依賴變量。
__le16
__le32
__le64
__be16
__be32
__be64
注意:源代碼已過時,在[linux/types.h](http://lxr.free-electrons.com/source/tools/include/linux/types.h)中定義了類型(自Linux 3.16起) – pevik 2017-02-22 17:25:01
簡短的回答:它代表little endian
龍回答:見@鏈接PBEN的answer
而且用gcc,所有__bitwise/__force的東西消失了,這一切 最終看起來就像整數海灣合作委員會。
所以我的理解是:
一個。它僅用於類型檢查。
b。如果您有
typedef __u16 __bitwise __my_type1;
typedef __u16 __bitwise __my_type2;
如果將__my_type1指定爲__my_type2,則稀疏將發出警告。
c。 __bitwise只意味着順序敏感,它沒有指定大端或小端。
對嗎?
le表示聽到內存中數據的字節順序的「小端」。 – 2012-03-13 08:25:51