)谁能帮我解释下((GPIO_TypeDef *) GPIOC_BASE) 是什么意思 特别是那“*”号的位置?

2025-06-26 05:19:45
推荐回答(2个)
回答1:

typedef struct
{
vu32 CRL;
vu32 CRH;
vu32 IDR;
vu32 ODR;
vu32 BSRR;
vu32 BRR;
vu32 LCKR;
} GPIO_TypeDef;
只表示对该结构体申明,而((GPIO_TypeDef *) GPIOC_BASE)表示将其强制转换为指针类型,
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)的意思是用GPIOC来替换((GPIO_TypeDef *) GPIOC_BASE),那么这个时候GPIOC就是指针了。所以程序里面你才敢用GPIOC->CRL。不要过多纠结 这是stm8、32里面的

回答2:

C基础吧,把一个整形的数据强转为一个结构体的指针。()是指把括号后的东西强转为括号里的类型。(GPIO_TypeDef *)就是个结构体指针类型。