feixiang20 发表于 2018-11-27 21:48:57

关于stm32标准库的小小疑问

一个关于stm32标准库的小小疑问。
#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
这是标准库中GPIOA的宏定义
void GPIO_DeInit(GPIO_TypeDef* GPIOx)这是标准库中的一个函数
就是想问一下这个函数里边的参数,比如说要传GPIOA那这个函数里边参数不就是GPIO_TypeDef* GPIOA吗,这个GPIOA再换成那个宏定义,最后不就变成GPIO_TypeDef*(GPIO_TypeDef* GPIOx)了吗,这样符合吗?麻烦看见的各位回答一下吧,想不明白

andrewsss 发表于 2018-11-27 22:23:38

#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)里的(GPIO_TypeDef *)是强制类型转换,没看见加了()吗,void GPIO_DeInit(GPIO_TypeDef* GPIOx)里的GPIO_TypeDef *是为了声明数据类型,没加括号的

andeyqi 发表于 2018-11-27 22:44:20

你上述描述的场景时,调用这个函数的时候GPIO_DeInit(GPIO_TypeDef* GPIOA)这么调用,但函数调用的时候都是这样用的GPIO_DeInit(GPIOA)展开的时候只有一个强制类型转换,并不会有你上面描述的情况。

stm1024 发表于 2018-11-28 08:06:10

强制类型转换,多和谐
页: [1]
查看完整版本: 关于stm32标准库的小小疑问