打印
[其他ST产品]

大神们请问关于函数调用结构体指针变量&符号的问题!

[复制链接]
515|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
以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本身就已经是一个结构体指针了

使用特权

评论回复
5
SantaBunny| | 2023-5-4 18:52 | 只看该作者
GPIOA本身就是一个结构体指针

使用特权

评论回复
6
llljh| | 2023-5-18 22:46 | 只看该作者
这里GPIOA就是个实实在在的 地址,所以不用取地址符号。

使用特权

评论回复
7
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 */

使用特权

评论回复
8
dingy| | 2023-5-18 22:49 | 只看该作者
而GPIO_InitStruct 只是个结构体变量,所以取地址给指针。

使用特权

评论回复
9
dingy| | 2023-5-18 22:51 | 只看该作者
GPIO_InitStruct是一个结构体

使用特权

评论回复
10
pengf| | 2023-5-18 22:52 | 只看该作者
你可以右键看一下GPIOA的定义,GPIOA本身就已经是一个结构体指针了

使用特权

评论回复
11
pengf| | 2023-5-18 22:54 | 只看该作者
GPIOA本身就是一个结构体指针

使用特权

评论回复
12
LLGTR| | 2023-5-19 14:04 | 只看该作者
那你就得看你传参的参数类型了。

使用特权

评论回复
13
朝生| | 2023-5-19 14:05 | 只看该作者
指针学好了,就不会有这个问了!

使用特权

评论回复
14
软核硬核| | 2023-5-19 14:06 | 只看该作者
GPIOA本来就是指针函数,GPIO_InitStruct只是一个结构体。

使用特权

评论回复
15
童雨竹| | 2024-5-21 08:02 | 只看该作者

做多层板可将做好的两块双面板用特制的粘合剂“压合”起来

使用特权

评论回复
16
Wordsworth| | 2024-5-21 09:05 | 只看该作者

清除与电镀动作都会在化学过程中完成

使用特权

评论回复
17
Clyde011| | 2024-5-21 10:08 | 只看该作者

使用特权

评论回复
18
公羊子丹| | 2024-5-21 11:01 | 只看该作者

将整个表面铺上一层薄薄的铜箔,并且把多余的部份给消除

使用特权

评论回复
19
万图| | 2024-5-21 12:04 | 只看该作者

在开始电镀之前,必须先清掉孔内的杂物。

使用特权

评论回复
20
帛灿灿| | 2024-5-21 15:03 | 只看该作者

在孔璧内部作金属处理后,可以让内部的各层线路能够彼此连接。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

342

主题

2337

帖子

4

粉丝