你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

分享一个有关于code的问题,大家一起来讨论下原因

[复制链接]
西奥伟 提问时间:2018-11-13 14:03 /

1.png

1.png
本函数是HAL库串口接收报文数据的解析函数,其中reqCommand为接收到的命令,ackData为接收到的数据实体,ackDataSize为接收到的数据实体的大小,但是,在主函数中调用本函数,会出现传入的参数cmd,RcvMsg,MsgLen接收到的数据始终为0.
并且,Keil编译器会提示警告,如下图所示。

2.png

2.png


最后,经过调试修改发现,将3个参数解引用的写法,调用该函数,能够正确返回接收到的数据值。为什么上面一种写法,不能够正常实现?

3.png

3.png








收藏 评论4 发布时间:2018-11-13 14:03

举报

4个回答
埃斯提爱慕 回答时间:2018-11-13 14:43:32
提示: 作者被禁止或删除 内容自动屏蔽
七哥 回答时间:2018-11-13 14:47:58
本帖最后由 toofree 于 2018-11-13 14:53 编辑

不要试图修改传进来的指针,但可以修改指针指向的内容。
函数内部改了传递指针,在函数外部也就改了。
如果是类似FIFO、链表之类的, 的确是要改指向全局变量数组的指针情况,那可以用。
C语言指针,把人给绕的


评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

西奥伟 回答时间:2018-11-13 15:17:28
dsjsjf 发表于 2018-11-13 14:43
因为你定义的是指针,它在函数入口处已经赋了地址值,你进函数内部,把这个地址值改掉了,,调用它的地方是 ...

嗯嗯,明白了
西奥伟 回答时间:2018-11-13 17:00:32
toofree 发表于 2018-11-13 14:47
不要试图修改传进来的指针,但可以修改指针指向的内容。
函数内部改了传递指针,在函数外部也就改了。
如果 ...

谢谢大哥指教

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版