宏定义
1.关键字:#define
2.用途
第一个用途:用一个字符串代替一个数字,便于理解,防止出错;
比如在程序中经常用1代表高电平,0代表低电平,这还算好理解,
但如果说1代表上拉输入、2代表下拉输入、3代表浮空输入等等,这时直接用数字来表示就非常麻烦,那我们就可以用宏定义将数据参数映射到一个字符串上,这样就比较好理解。
第二个用途:提取程序中经常出现的参数,便于快速修改;
比如写程序里面出现了10个GPIO_Pin_0,这个Pin0是需要经常修改的,那么如果一个个修改就不太方便,这时我们就可以用一个字符串来代替GPIO_Pin_0,然后需要修改的时候,只需要修改一下定义即可。
3.定义宏定义:#define ABC 12345
这个意思就是用ABC这个字符串代替12345这个参数。
4.引用宏定义
int a = ABC; //等效于int a = 12345
(直接写int a = ABC,就等效于int a = 12345 这个意思)
举例说明:
这个GPIO_Pin_12就是一个宏定义字符串,GPIO_Pin_12替换的是0x1000这个数据(左边(uint16_t)是一个强制类型转换,是为了严谨性考虑的)。