Linux基础——细数linux的各种整型数据

Linux系统的兼容性很强,特别是对整型数据的处理。从头文件到宏定义,本节将细数linux的各种整型数据。(部分文字解释来源于网络博客,特此声明!)

——————————————————————————————————————

从stdint说起

stdint.h
一、是什么
stdint.h是c99中引进的一个标准C库的头文件.

二、干什么
stdint.h中定义了一些整数类型,规则如下(其中N可以为8,16,32,64)
intN_t, int_leastN_t, int_fastN_t表示长度为N位的整型数;
uintN_t, uint_leastN_t, uint_fastN_t表示长度为N位的无符号整型数 ;

stdint.h中的常量,定义以上各类型数的最大最小值(其中N可以为8,16,32,64)
INTN_MIN, UINTN_MIN, INTN_MAX, UINTN_MAX ;
INT_LEASEN_MIN, INT_LEASEN_MAX ;
INT_FASTN_MIN, INT_FASTN_MAX ;
以上类型的C++类型定义等

三、大数输出
int64_t数的输出:%lld ;
uint64_t数的输出:%llu ;
uint64_t数十六进制输出:%llx ;
uint64_t数八进制输出:%llo ;

linux整型的兼容性和可拓展性

我们都知道linux C开发中的常见扩展数据类型的定义有:uint8_t, uint16_t, uint32_t, uint64_t, size_t, .之所以要自己定义出数据类型是有道理的。

如: typdef unsigned int uint32_t; 表示uint32_t为32位无符号类型数据, 其实size_t也是32位无符号数据类型, 为什么不直接写”unsigned int”呢?

为了程序的可扩展性, 假如将来我们需要的数据大小变成了64bit时,
我们只需要将typedef long int size_t就可以了, 不然我们可要修改好多好多的地方了. 

这种设计我们同样可以应用到自己的开发中来,当自己设计一个int类型保存某种数据时,但你又没把握将来是不是要用long int时你可以引用一个自己定义的数据类型啊!

你可能感兴趣的:(Linux,linux,c语言)