有人可以解释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.

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

感谢帮助 :)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐