关于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)了吗,这样符合吗?麻烦看见的各位回答一下吧,想不明白
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)里的(GPIO_TypeDef *)是强制类型转换,没看见加了()吗,void GPIO_DeInit(GPIO_TypeDef* GPIOx)里的GPIO_TypeDef *是为了声明数据类型,没加括号的 你上述描述的场景时,调用这个函数的时候GPIO_DeInit(GPIO_TypeDef* GPIOA)这么调用,但函数调用的时候都是这样用的GPIO_DeInit(GPIOA)展开的时候只有一个强制类型转换,并不会有你上面描述的情况。 强制类型转换,多和谐
页:
[1]