郑州电子商务网站建设,品牌设计师需要具备什么能力,深夜18款免费软件app下载,网页设计制作的软件有哪些目录
一、数据类型
二、C语言宏定义
三、C语言typedef重命名
四、 #define与typedef的区别
五、结构体
六、枚举变量 补充学习一点STM32的必备基础知识
一、数据类型 二、C语言宏定义
关键字#xff1a;#define 用途#xff1a;用一个字符串代替一个数字#xff0c;…目录
一、数据类型
二、C语言宏定义
三、C语言typedef重命名
四、 #define与typedef的区别
五、结构体
六、枚举变量 补充学习一点STM32的必备基础知识
一、数据类型 二、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;四、 #define与typedef的区别 typedef最后加分号#define 不用加typedef新名字在右边#define 新名字在左边宏定义任何名字都可以换typedef只能替换变量类型宏定义无脑改名范围更宽typedef重命名变量类型更安全重命名是增加了一个新名字原来的名字仍然可以继续使用 unsigned char a uint_t a; u8 a; 都可以五、结构体
关键字struct 用途数据打包不同类型变量的集合定义结构体变量 struct{char x; int y; float z;} c;struct是声明结构体类型花括号中间是要打包的变量类型最后是结构体名最后加分号结构体的引用 c.x a; //c.x调用这个结构体 c.y 1; c.z 6.66;因为结构体变量类型较长所以通常用typedef更改变量类型名引用结构体成员typedef struct{char x;int y;float z;} StructName //把这个结构体重命名为 StructName 下次定义结构体 比如StructName GPIO_Init; //结构体数据类型 结构体变量名称 GPIO_Init是声明结构体名称用 点 引出元素为了形式美观好看常见结构体格式如下
typedef struct{char x; //数据类型int y;float z;
} StructName //最后是结构体数据类型
直接用结构体变量名 用 点 引出数据 引出结构体成员的第二种方式 pStructName - x A; //用地址的方式引出结构体成员 举例说明
typedef struct
{uint16_t GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;在结构体中声明所需要的变量类型以及变量进行打包
然后重新起名字调用
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin GPIO_Pin_1 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;
GPIO_Speed 和 GPIO_Mode又用到了枚举变量
六、枚举变量
关键字enum 用于定义一个取值受限制的整型变量用于限制变量的取值范围 定义枚举变量 举例 enum{MONDAY 1,TUESDAY 2;WEDNESDAY 3} week; 中间用逗号后边的week是变量本变量取值范围在1-3花括号内的值 typedef改名 typedef enum{MONDAY 1,TUESDAY 2,WEDNESDAY 3
}week_t; //week_t是变量类型名 再定义枚举变量 week_t week week MONDAY //只能按照定义类型 来赋值 枚举值也可以赋值给别的变量 结构体中提到了 GPIO_Speed 和 GPIO_Mode,它们都是枚举变量
typedef enum
{ GPIO_Speed_10MHz 1,GPIO_Speed_2MHz, GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;typedef enum
{ GPIO_Mode_AIN 0x0,GPIO_Mode_IN_FLOATING 0x04,GPIO_Mode_IPD 0x28,GPIO_Mode_IPU 0x48,GPIO_Mode_Out_OD 0x14,GPIO_Mode_Out_PP 0x10,GPIO_Mode_AF_OD 0x1C,GPIO_Mode_AF_PP 0x18
}GPIOMode_TypeDef;