Linuxカーネルの意味はtypedef __u16 __bitwise __le16;
ですか?"typedef __u16 __bitwise __le16;"とは何ですか? Linuxカーネルの意味ですか?
実際には、ここで「le」とは何ですか? これは符号なしの16ビットintであることがぼんやりとわかりますか?
ありがとうございました。
Linuxカーネルの意味はtypedef __u16 __bitwise __le16;
ですか?"typedef __u16 __bitwise __le16;"とは何ですか? Linuxカーネルの意味ですか?
実際には、ここで「le」とは何ですか? これは符号なしの16ビットintであることがぼんやりとわかりますか?
ありがとうございました。
iはそれらが使用されるビット単位の属性で定義されている以外は(source)とthat
タイプ識別子
次のタイプ識別子は、U16、U32、及びU64タイプに対応することがわかっ整数としての使用を制限します。ビット単位の属性は、スパースユーティリティによって、変数が他の(安全でない)操作が変数で実行される前にローカルプロセッサタイプに変換されていることを確認するために使用されます。
linux/kernel.hヘッダファイルをインクルードした後、エンディアン依存変数には次のタイプを使用できます。
__le16
__le32
__le64
__be16
__be32
__be64
注:ソースは古く、タイプは[linux/types.h](http://lxr.free-electrons.com/source/tools/include/linux/types.h)の(Linux 3.16以降) – pevik
短い答え:それはの略little endian
長い答え:@内のリンクを参照してくださいたPbenのanswer
とgccで、すべての__bitwise/__forceのものがなくなり、すべて はgccの整数に似ています。
だから私の理解では、次のとおりです。
。これは型チェックにのみ使用されます。
b。お持ちの場合
typedef __u16 __bitwise __my_type1;
typedef __u16 __bitwise __my_type2;
__my_type1を__my_type2に割り当てると、スパースで警告が表示されます。
c。 __bitwiseは、大文字小文字を区別するだけで、ビッグエンディアンまたはリトルエンディアンを指定しません。
私は正しいですか?
leは、メモリ内のデータのバイト順を示す「リトルエンディアン」を意味します。 –