C++ uint8_t
問題:uint8_t是什么數據類型?
解決:C++的主要數據類型,主要分為三類:布爾型,整型,浮點型。
 按照posix標準,一般整型對應的*_t類型為:
 1字節?? ? uint8_t
 2字節?? ? uint16_t
 4字節?? ? uint32_t
 8字節?? ? uint64_t
類型的定義:
#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
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 ?
而在基礎數據類型中,int也是4個字節的,所以可以把uint32_t看作是int的別名。
比如數據類型?long —般在 32 位程 序中為4字節 ,在 64 位程序中則為8字節也就是說不同編譯器下long的大小可能不同。
為了避免由于依賴“典型”大小和不同編譯器設置帶來的奇怪 行為, ISO C99 引人了一類數據類型 ,?其數據大小是固定的?,不隨編譯器和機器設置而變化。
?
uint8_t就是可表示范圍更小的整型數據類型。(char型從本質上說,也是種整型類型,它是長度為1的整數,通常用來存放字符的ASCII碼)
拓展:由于uint8_t實際上就是一個char,所以輸出 uint8_t類型的變量實際上輸出對應的字符,而不是數值,所以如果想要按照數字輸出,可以看看以下鏈接
c++ - uint8_t can't be printed with cout - Stack Overflow
比較簡單的一個方法:
uint8_t a=102;
cout<<"a="<<+a;
即在需要輸出的?uint8_t變量前面加“+”。
總結
以上是生活随笔為你收集整理的C++ uint8_t的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Vue开发环境安装
- 下一篇: oppoK9Pro游戏性能怎么样
