[其他ST产品] 大神们请问关于函数调用结构体指针变量&符号的问题!

[复制链接]
900|16
 楼主| 七毛钱 发表于 2023-4-11 10:22 | 显示全部楼层 |阅读模式
以gpio初始化函数为例!
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);函数原型
void GPIO_Init(GPIOA, &GPIO_InitStruct);调用后
问题是:为什么第一个形参不加&符号,第二个要加&啊!
请大神指点
香水城 发表于 2023-4-11 12:51 | 显示全部楼层
这里GPIOA就是个实实在在的 地址,所以不用取地址符号。


#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOA_BASE            (AHB2PERIPH_BASE + 0x0000UL)
#define AHB2PERIPH_BASE       (PERIPH_BASE + 0x08000000UL)
#define PERIPH_BASE           (0x40000000UL) /*!< Peripheral base address */

而GPIO_InitStruct 只是个结构体变量,所以取地址给指针。
Undshing 发表于 2023-4-11 21:23 | 显示全部楼层
GPIO_InitStruct是一个结构体
豌豆爹 发表于 2023-4-12 10:00 | 显示全部楼层
你可以右键看一下GPIOA的定义,GPIOA本身就已经是一个结构体指针了
SantaBunny 发表于 2023-5-4 18:52 | 显示全部楼层
GPIOA本身就是一个结构体指针
llljh 发表于 2023-5-18 22:46 | 显示全部楼层
这里GPIOA就是个实实在在的 地址,所以不用取地址符号。
happy_10 发表于 2023-5-18 22:48 | 显示全部楼层

#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOA_BASE            (AHB2PERIPH_BASE + 0x0000UL)
#define AHB2PERIPH_BASE       (PERIPH_BASE + 0x08000000UL)
#define PERIPH_BASE           (0x40000000UL) /*!< Peripheral base address */
dingy 发表于 2023-5-18 22:49 | 显示全部楼层
而GPIO_InitStruct 只是个结构体变量,所以取地址给指针。
dingy 发表于 2023-5-18 22:51 | 显示全部楼层
GPIO_InitStruct是一个结构体
pengf 发表于 2023-5-18 22:52 | 显示全部楼层
你可以右键看一下GPIOA的定义,GPIOA本身就已经是一个结构体指针了
pengf 发表于 2023-5-18 22:54 | 显示全部楼层
GPIOA本身就是一个结构体指针
LLGTR 发表于 2023-5-19 14:04 | 显示全部楼层
那你就得看你传参的参数类型了。
朝生 发表于 2023-5-19 14:05 | 显示全部楼层
指针学好了,就不会有这个问了!
软核硬核 发表于 2023-5-19 14:06 | 显示全部楼层
GPIOA本来就是指针函数,GPIO_InitStruct只是一个结构体。
童雨竹 发表于 2024-5-21 08:02 | 显示全部楼层

做多层板可将做好的两块双面板用特制的粘合剂“压合”起来
Wordsworth 发表于 2024-5-21 09:05 | 显示全部楼层

清除与电镀动作都会在化学过程中完成
Clyde011 发表于 2024-5-21 10:08 | 显示全部楼层
公羊子丹 发表于 2024-5-21 11:01 | 显示全部楼层

将整个表面铺上一层薄薄的铜箔,并且把多余的部份给消除
万图 发表于 2024-5-21 12:04 | 显示全部楼层

在开始电镀之前,必须先清掉孔内的杂物。
帛灿灿 发表于 2024-5-21 15:03 | 显示全部楼层

在孔璧内部作金属处理后,可以让内部的各层线路能够彼此连接。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

408

主题

2884

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部