uint8_t
と__u8
の違いを説明できる人はいますか?__u8とuint8_tの違い
私はuint8_t
がstdint.hで定義されていることを知っています。これらはすべてのUNIXシステムで利用できます。
/* Unsigned. */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
...
そして、私がそれらの認識可能なものを私が意図しているものを使用する場合。
今私は__u8
と__u16
タイプを見つけました。その私は同じであるように見えます。
これらのタイプのいくつかは、私が__u8
を見つけるdidntのが、私はまだそれを使用することができますし、それがuint8_tように振る舞うのlinux/types.hで
#ifdef __CHECKER__
#define __bitwise__ __attribute__((bitwise))
#else
#define __bitwise__
#endif
#ifdef __CHECK_ENDIAN__
#define __bitwise __bitwise__
#else
#define __bitwise
#endif
typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __le32;
...
で定義されています。
パフォーマンスやメモリ消費に多少の違いはありますか?ヘルプ:)
隣接する2つのアンダースコアの中には、あなたのために制限がないものを考えてください。 –
識別子の先頭のアンダースコアについては、[この質問](http://stackoverflow.com/q/228783/440558)を参照してください。 –
'uint8_t'は、正確に8ビットのネイティブタイプが存在するシステムで使用できます。そのような型がない場合、 'uint8_t'は定義されません。これはunix、linux、OS Xなどとは関係ありません。これは、プログラムが実行されているハードウェアに関するものです。 –