C语言数据类型
C语言宏定义
关键字:#define
用途:用一个字符串代替一个数字,便于理解,防止出错;提取程序中经常出现的参数,便于快速修改
定义宏定义: #define ABC 12345
引用宏定义: int a = ABC; //等效于int a = 12345;
C语言typedef
关键字:typedef
用途:将一个比较长的变量类型名换个名字,便于使用
定义typedef: typedef unsigned char uint8_t;
引用typedef: uint8_t a; //等效于unsigned char a;
C语言结构体
关键字:struct
用途:数据打包,不同类型变量的集合
定义结构体变量:struct{char x; int y; float z;} StructName;
StructName是结构体变量的名字
因为结构体变量类型较长,所以通常用typedef更改变量类型名
引用结构体成员:
StructName.x = 'A';
StructName.y = 66;
StructName.z = 1.23;
使用typedef 解决结构体名字太长的问题
//使用typedef将结构体换了个名字叫struct_t(结构体的数据类型),之后用struct_t来进行结构体的定义
typedef struct {
char x;
int y;
float z
} struct_t;
struct_t c; // struct_t是结构体数据类型名字,c是结构体变量的名字
struct_t d;
//使用typedef定义后的新名字来定义结构体,struct_t是结构体数据类型,c是结构体变量的名字
c.x = 'a';
//使用结构体变量的名字,然后用点,来引出结构体成员的数据,这样就可以进行数据的写入和读取了
C语言枚举和结构体差不多,也是一个数据类型
只能在它给定的参数列表里赋值,不能赋其它的值
枚举值也不是必须赋值给枚举变量的,也可以赋值给随意一个变量。所以说枚举也是一个宏定义的集合。
关键字:enum
用途:1.定义一个取值受限制的整型变量,用于限制变量取值范围(比如我们定义一个变量用来存储星期的值,理论上这个变量只能取1到7的值,若定义的是整形变量这时可能会出现数据不合法,比如星期8的情况出现,所以这时候需要定义一个取值受限制的整形变量,这个变量就是枚举);2.宏定义的集合
定义枚举变量:
enum{FALSE = 0, TRUE = 1} EnumName; (需要用逗号,限制EnumName的取值范围)
因为枚举变量类型较长,所以通常用typedef更改变量类型名:
typedef enum{FALSE = 0, TRUE = 1} EnumName_t
使用新的名字EnumName_t 来定义枚举变量,命名为EnumName:
EnumName_t EnumName
只能引用下面两种:
EnumName = FALSE; // EnumName = 0
EnumName = TRUE ; // EnumName = 1
引用枚举成员: EnumName = FALSE; EnumName = TRUE