关于int8_t,uint8_t.....等数据类型的问题
2017-07-30 19:06
1416 查看
最近在看代码的时候,发现好多师兄写的代码喜欢用下面一些数据类型:
然后让我写一个输出程序的时候,我就有些为难,用C的printf输出时这些32什么的占位符应该用什么呢,以前也没见过这种。
经过网上查找,发现这些都是已经被typedef过的类型:
这些包含在inttypes.h头文件,据说这样做的原因是方便移植,比如int8就是8位大小占一字节,int32,,32位大小4字节…
这样相对应的占位符也就清楚了:
注:此处参考博客C++下基本数据类型总结 (占位符 输入符 输出符)
so:
typedef uint8_t u8_t; typedef int8_t i8_t; typedef uint16_t u16_t; typedef int16_t i16_t; typedef uint32_t u32_t; typedef int32_t i32_t; typedef uint64_t u64_t; typedef int64_t i64_t; typedef float f32_t; typedef double f64_t;
然后让我写一个输出程序的时候,我就有些为难,用C的printf输出时这些32什么的占位符应该用什么呢,以前也没见过这种。
经过网上查找,发现这些都是已经被typedef过的类型:
typedef signed char int8_t; typedef unsigned char uint8_t; typedef int int16_t; typedef unsigned int uint16_t; typedef long int32_t; typedef unsigned long uint32_t; typedef long long int64_t; typedef unsigned long long uint64_t;
这些包含在inttypes.h头文件,据说这样做的原因是方便移植,比如int8就是8位大小占一字节,int32,,32位大小4字节…
这样相对应的占位符也就清楚了:
char /unsigned char: %c int : %d unsigned int: %u long: %ld; unsigned long:%lu long long: %lld(%l64d) unsigned long long:%Ilu(%l64u)
注:此处参考博客C++下基本数据类型总结 (占位符 输入符 输出符)
so:
int8_t:%c; uint8_t:%c; int16_t: %d; uint16_t:%u; int32_t:%ld; uint32_t:%lu; int64_t:%lld(%l64d); uint64_t:%llu(%l64u);
相关文章推荐
- 从Excel中读取数据,关于一列数据包含多种数据类型的问题
- 关于Silverlight对匿名类型数据绑定的问题及其解决方法
- 关于C#数据类型之间转换的问题
- ms sql到mysql的移植:关于数据类型移植的一些问题
- 关于jquery中ajax数据返回类型问题
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
- 关于2147217913 从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界 的问题解决方法
- 关于float double的数据类型的细节,在处理转换问题的时候非常有用
- 关于类型P和N的数据强制转换为C型问题
- 关于int类型的数据的几个问题
- 关于BF53X的c编程数据类型问题
- 关于对日期类型的数据进行模糊查询的问题
- 关于sql条件语句where id in (@参数)执行报错问题(转换成数据类型 int 时失败)(
- 关于数据类型的一个小问题 (int) (int &) (int ) &
- 关于数据表类型(Table Type)的问题
- 关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
- 关于Access中“标准表达式中数据类型不匹配”的问题
- (转)关于数据类型转换的有趣问题
- 一个关于Java数据类型的有趣问题
- 关于Silverlight对匿名类型数据绑定的问题及其解决方法