c语言程序中u8是什么意思,c – __u8和uint8_t之间的区别

有人可以解释uint8_t和__u8类型之间的区别吗?

我知道uint8_t是在stdint.h中定义的,并且它们在每个unix系统上都可用.

/* Unsigned. */

typedef unsigned char uint8_t;

typedef unsigned short int uint16_t;

...

如果我使用它们可以识别我打算做什么.

现在我偶然发现了__u8和__u16类型.它似乎对我来说是一样的.

其中一些类型在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;

...

我没找到__u8但我仍然可以使用它,它的行为就像uint8_t.

性能或内存消耗有一些差异吗?

感谢帮助 :)