关于gpio初始化的问题 ,关于C语言的困扰

2019-07-21 00:04发布

GPIO_InitTypeDef  GPIO_sss;
GPIO_sss.GPIO_Mode= GPIO_Mode_Out_PP;//设置输出模式
GPIO_sss.GPIO_Pin=GPIO_Pin_8;//输出引脚
GPIO_sss.GPIO_Speed=GPIO_Speed_50MHz;//输出速度
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD,ENABLE);//初始化GPIOA GPIOB时钟
GPIO_Init(GPIOA,&GPIO_sss);

定义了一个结构体变量 GPIO-sss,为什么 在初始化的时候要用一个取地址附&

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
edmund1234
1楼-- · 2019-07-21 00:14
本帖最后由 edmund1234 于 2019-6-11 12:34 编辑

函数的参数经常只传地址不传实体, 是因为直接传实体会浪费很多资源。
直接传结构体,参数总长度大于4个Word就需要入栈, 这样内存消耗大, 又浪费CPU的资源。
如果只传指针就不需要入栈。
人去搂空
2楼-- · 2019-07-21 04:46
 精彩回答 2  元偷偷看……
程浩俊
3楼-- · 2019-07-21 07:29
edmund1234 发表于 2019-6-11 12:26
函数的参数经常只传地址不传实体, 是因为直接传实体会浪费很多资源。
直接传结构体,参数总长度大于4个Wo ...

就是采用结构体指针的形式 ,可以快速的访问结构体的地址 进行对变量的取值
edmund1234
4楼-- · 2019-07-21 09:24
本帖最后由 edmund1234 于 2019-6-11 16:59 编辑
程浩俊 发表于 2019-6-11 16:16
就是采用结构体指针的形式 ,可以快速的访问结构体的地址 进行对变量的取值

访问与取值没分别的
分别在调用函数前加载参数的部分
pzcai150
5楼-- · 2019-07-21 11:58
定义了一个结构体变量 GPIO-sss,为什么 在初始化的时候要用一个取地址附&
不用&符说明是传值方法,无法返回你要初始化的变量初始值.
程浩俊
6楼-- · 2019-07-21 12:25
edmund1234 发表于 2019-6-11 16:58
访问与取值没分别的
分别在调用函数前加载参数的部分

感觉越说越不明白了 。。。。谢谢老哥

一周热门 更多>