может кто-нибудь объяснить разницу между типами 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
типов. для меня это похоже на то же самое.
некоторые из этих типов определены в 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.
есть ли разница в производительности или потреблении памяти?
спасибо за помощь :)
Рассмотрите все, что связано с двумя соседними подчеркиваниями, для вас. –
См. [Этот вопрос] (http://stackoverflow.com/q/228783/440558) о ведущих символах подчеркивания в идентификаторах. –
'uint8_t' доступен в системах, где есть собственный тип с ровно восемью битами. Если такого типа нет, то 'uint8_t' не определен. Это не имеет никакого отношения к unix, linux, OS X и тому подобное. Это касается аппаратного обеспечения, на котором работает программа. –