uint8_t
과 __u8
유형의 차이점을 설명 할 수 있습니까?__u8과 uint8_t의 차이
uint8_t
은 stdint.h에 정의되어 있으며 모든 유닉스 시스템에서 사용할 수 있다는 것을 알고 있습니다.
/* Unsigned. */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
...
그리고 내가 사용하고자하는 의도대로 알아볼 수 있습니다.
이제는 __u8
및 __u16
유형을 발견했습니다. 그게 나를 위해 같다.
그 형식 중 일부
은/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
을 찾을 didnt는 리눅스에 정의되어 있지만, 난 여전히 사용할 수 있으며 uint8_t처럼 동작합니다.
성능이나 메모리 소비에 약간의 차이가 있습니까? 도움을
감사합니다 :)
두 개의 인접한 밑줄이 포함 된 것을 고려해보십시오. –
식별자의 밑줄에 대한 정보는 [이 질문 (http://stackoverflow.com/q/228783/440558)을 참조하십시오. –
'uint8_t'는 정확히 8 비트의 네이티브 타입이있는 시스템에서 사용할 수 있습니다. 그러한 유형이 없으면'uint8_t'가 정의되지 않습니다. 이것은 유닉스, 리눅스, OS X와는 아무 상관이 없다. 프로그램이 실행되는 하드웨어에 관한 것입니다. –