浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t
一、C語言基本數(shù)據(jù)類型回顧
在C語言中有6種基本數(shù)據(jù)類型:short、int、long、float、double、char
1、數(shù)值類型
1)整型:short、int、long
2)浮點型:float、double
2、字符類型:char
二、typedef回顧
typedef用來定義關(guān)鍵字或標識符的別名,例如:
typedef double wages;
typedef wages salary;
三、uint8_t\uint_16_t\uint32_t\uint64_t
1、這些類型的來源:這些數(shù)據(jù)類型中都帶有_t, _t 表示這些數(shù)據(jù)類型是通過typedef定義的,而不是新的數(shù)據(jù)類型。也就是說,它們其實是我們已知的類型的別名。
2、使用這些類型的原因:方便代碼的維護。比如,在C中沒有bool型,于是在一個軟件中,一個程序員使用int,一個程序員使用short,會比較混亂。最好用一個typedef來定義一個統(tǒng)一的bool:
typedef char bool;
在涉及到跨平臺時,不同的平臺會有不同的字長,所以利用預(yù)編譯和typedef可以方便的維護代碼。
3、這些類型的定義:
在C99標準中定義了這些數(shù)據(jù)類型,具體定義在:/usr/include/stdint.h??? ISO C99: 7.18 Integer types
#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 ?
4、格式化輸出:
uint16_t %hu
uint32_t %u
uint64_t %llu
5、uint8_t類型的輸出:
注意uint8_t的定義為
typedef unsigned char?????????? uint8_t;
uint8_t實際上是一個char。所以輸出uint8_t類型的變量實際上輸出其對應(yīng)的字符,而不是數(shù)值。例:
uint8_t num = 67;
cout << num << endl;
輸出結(jié)果:C
參考:
http://blog.sina.com.cn/s/blog_9dcc0fb90101gdvo.html
http://blog.csdn.net/mrlixirong/article/details/48416533
http://blog.csdn.net/kiddy19850221/article/details/6655066
?
--------------------- ?
作者:海闊天空sky1992 ?
來源:CSDN ?
原文:https://blog.csdn.net/Mary19920410/article/details/71518130 ?
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天谕手游招潮蟹在哪?
- 下一篇: ssh远程执行多个命令