C++的基础数据类型:

C++的主要数据类型,主要分为三类:布尔型,整型(char型从本质上说,也是种整型类型,它是长度为1的整数,通常用来存放字符的ASCII码),浮点型。
而 *_t是typedef定义的表示标志,是结构的一种标注。即我们所看到的 uint8_t、uint16_t、uint32_t都不是新的数据类型,而是通过typedef给类型起得别名。
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
这些数据类型是 C99 中定义的,具体定义在:/usr/include/stdint.h ISO C99: 7.18 Integer types
/* There is some amount of overlap with
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
注意,uint8_t实际上就是一个char,所以输出 uint8_t类型的变量实际上输出对应的字符,而不是数值,比如:
若要输出 67,则可以这样:
cerr<< "field=" << (uint16_t) fieldID <
结果是:field=67
同样: uint8_t 类型变量转化为字符串以及字符串转化为 uint8_t 类型变量都要注意, uint8_t类型变量转化为字符串时得到的会是ASCII码对应的字符, 字符串转化为 uint8_t 变量时, 会将字符串的第一个字符赋值给变量.
#include
#include
#include
using namespace std; int main() { uint8_t fieldID = 67; // uint8_t --> string string s; ostringstream strOStream; strOStream << fieldID; s = strOStream.str(); cerr << s << endl; // string --> uint8_t s = "65"; stringstream strStream; strStream << s; strStream >> fieldID; strStream.clear(); cerr << fieldID << endl; } ------------------------------------------- 上述代码输出的是: C 6
上部分转自:https://blog.csdn.net/zklth/article/details/
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217747.html原文链接:https://javaforall.net
