找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1195|回复: 7
打印 上一主题 下一主题
收起左侧

求大佬指点:单片机C语言函数参数小问题,谢谢

[复制链接]
跳转到指定楼层
楼主
ID:728915 发表于 2021-10-16 17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为最近芯片缺货,原GD32F103的芯片拟用GD32F303的芯片替换,测试的时候出现问题,C12和A15两个输入(按键)引脚出问题(应该是串扰),
现象是:通过外设寄存器看按键时对应IO口的状态是完全正常的;但在跑程序的时候,单独按键A15是可以正常动作的;如果先按1下C12就相当于,按下C12后紧接着按了1下A15(实际上只按了1下C12),然后按键A15没有反应。

找问题的时候设断点,到了下面的程序:
void PcanshuDisplay(uint8_t value)    // 函数1
{  DisplayData[0] = value;

}


void UcanshuDisplay(uint8_t value)    // 函数2
{  DisplayData[0] = value;

}




我想请问一下:
1.  (uint8_t value)作为这两个函数的参数,是分别不同的参数,还是同一个参数?

2.  DisplayData[0] = value;  这里的这个“value”是对应函数里的(uint8_t value)这个参数吧?
     谢谢!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:712493 发表于 2021-10-16 21:13 | 只看该作者
这个应该叫形参吧!把它当成局部参数理解应该可以 , DisplayData[0] = value;  这里的这个“value”是对应函数里的(uint8_t value)这个参数  是的
回复

使用道具 举报

板凳
ID:401564 发表于 2021-10-17 11:38 | 只看该作者
1.  (uint8_t value),这个是在函数声明时用的,它只能代表当前的函数(作用域),也就是说它的作用只在这个函数后面的{}内
所以,这是两个形参,是不同两个形式参数
2,value  这个是对应函数里的value

这是C语言的基本知识,实在不理解的话,单片机随意改动,烧录验证就知道怎么回事了
回复

使用道具 举报

地板
ID:728915 发表于 2021-10-18 16:55 | 只看该作者
fj51hei 发表于 2021-10-16 21:13
这个应该叫形参吧!把它当成局部参数理解应该可以 , DisplayData[0] = value;  这里的这个“value”是对应 ...

谢谢指点!
回复

使用道具 举报

5#
ID:728915 发表于 2021-10-18 16:58 | 只看该作者
Y_G_G 发表于 2021-10-17 11:38
1.  (uint8_t value),这个是在函数声明时用的,它只能代表当前的函数(作用域),也就是说它的作用只在这个函数 ...

感谢指点,我开始是这样想的,但是因为始终找不出参数value在什么时候变的,所以有点怀疑了。
回复

使用道具 举报

6#
ID:415064 发表于 2021-10-18 19:16 | 只看该作者
1.value是函数的形参,这个value的值由调用的地方传入,传入啥这个value就是啥
回复

使用道具 举报

7#
ID:728915 发表于 2021-10-19 08:08 | 只看该作者
wojiaoguogai 发表于 2021-10-18 19:16
1.value是函数的形参,这个value的值由调用的地方传入,传入啥这个value就是啥

谢谢,了理解了。
回复

使用道具 举报

8#
ID:514901 发表于 2021-10-19 09:02 | 只看该作者
(uint8_t value)作为这两个函数的参数,value可以看成是函数的局部变量,是不同的,两个参数互不影响
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表