《快學c++》第5課——uint8_t,uint16_t,uint32_t,uint64_t

先從c++的基礎數據類型說起

C++的基礎數據類型列表:

總的來說c++的基礎數據類型分為三類:

  • 佈爾型
  • 整型(char型從本質上說,也是種整型類型,它是長度為1個字節的整數,通常用來存放字符的ASCII碼)
  • 浮點型

uint8_t/uint16_t/uint32t/uint64_t是什麼

首先,要明確一點:*_t是typedef定義的表示標志,是一種表示規范。

因此,我們所看到的 uint8_t、uint16_t、uint32t、uint64_t都不是新的數據類型,而是通過typedef給類型起得別名。

這些數據類型是 C99 中定義的,具體定義在:/usr/include/stdint.h文件中。

/* There is some amount of overlap with <sys/types.h> as known by inet code */
#ifndef __int8_t_defined
# define __int8_t_defined
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
# if __WORDSIZE == 64
typedef long int int64_t;
# else
__extension__
typedef long long int int64_t;
# endif
#endif

/* Unsigned. */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
#ifndef __uint32_t_defined
typedef unsigned int uint32_t;
# define __uint32_t_defined
#endif
#if __WORDSIZE == 64
typedef unsigned long int uint64_t;
#else
__extension__
typedef unsigned long long int uint64_t;
#endif

赞(0)