如果想将c++类中的成员函数添加到rt_device的回调函数中是行不通的,因为要传到this指针,导致类型不匹配。这可以用静态方法来实现,但是将会导致不能将对象的指针(this)传到回调函数里。如果仍然希望该静态方法有着类似成员函数的特性,可以在绑定回调函数时,将对象指针作为参数传进去。在静态方法中解析出rt_device中的对象指针。这仅仅需要在rt_device中再加一个void* 指针,就可以弥补c++不能将成员函数传到回调函数中的问题了。
查看更多
成员函数做回调函数真的是一个头疼的事,希望在所有的回调函数里,都给个参数指针用来传递this
试试能否可以使用静态函数加静态指针变量的方式解决,将this指针赋值给静态指针,然后就可以在静态回调函数中使用了
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
最好不要用静态函数,这将导致静态函数访问的一切类成员全部静态化,会严重影响代码逻辑。this指针赋给静态变量即类变量与效果仍然不服,不能达到类似成员函数访问自身对象数据的特性。我觉得饿最好的方法就是给rt_device中的两个回调函数配个空指针保存this,用户自己用友元函数提取this,将友元函数回调。