完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,想请问下下面的函数
INT8U OSQPost (OS_EVENT *pevent, void *msg); 给msg传递的是不是要是全局的内存地址? 而不能传局部的内存地址? |
|
相关推荐
8个回答
|
|
|
只要保证OSQPost 函数在执行完毕之前该局部变量尚未被回收即可
|
|
|
|
|
|
这个不好保证吧,程序运行的时候状态无法把握,那么就是说要用全局变量了?
|
|
|
|
|
|
比如说这样:
[C] 纯文本查看 复制代码 void test(void){ OS_EVENT x; char s[80]; /* other code */ OSQPost(&x, (void*)s); /* other code */} 完全可以,因为那两个变量是由test函数从栈里申请的,test函数还没有执行完毕,当然未被回收,所以可以传参数给OSQPost, |
|
|
|
|
|
要是因为某种原因,test已经执行完了,而OPQPend还没收到,那消息的源地址找不到了,接收方收到的不知道是啥了,有这种可能吧
|
|
|
|
|
|
包裹都寄出去了,寄件方消失,包裹就送不到了?
|
|
|
|
|
|
接收方是能收到,但是发送方给的地址被系统收回了,那接收方找的那个地址就可能不对了吧
|
|
|
|
|
|
|
|
|
|
|
|
呵呵,感觉你根本没有系统的概念,还在执着源地址
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1022 浏览 1 评论
1852 浏览 0 评论
1833 浏览 1 评论
3258 浏览 5 评论
3585 浏览 9 评论
1024浏览 1评论
1851浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1361浏览 1评论
1853浏览 0评论
1179浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 09:39 , Processed in 1.138757 second(s), Total 88, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
565