【C语言笔记】uint8_t、uint16_t、uint32_t、uint64_t
一.C语言基本数据类型:
C语言共有6种基本数据类型
整形:
? short int16 bit
? int32 bit
? long int64 bit
浮点型:
? float32 bit
? double 32 bit
字符型:
? char8 bit
二.typedef
? C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。
? 例如,C 语言在 C99 之前并未提供布尔类型,但我们可以使用 typedef 关键字来定义一个简单的布尔类型,如下面的代码所示:
typedef int BOOL;
#define TRUE 1
#define FALSE 0
三.uint8_t、uint_16_t、uint32_t、uint64_t
这些类型都是别名,_t指的是这些数据类型是通过typedef定义的,这样定义的目的是为了方便维护
在C99标准中定义了这些数据类型,具体定义在:/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