关于回调函数传参的问题

2019-12-20 21:30发布

本帖最后由 Junsea 于 2018-4-12 14:15 编辑

/*定义结构体*/
typedef        struct                        //毫秒延时结构体
{
        uint8_t         En;
        uint8_t        Dis;                        //新信号无效状态
        uint32_t        Cnt;                        //毫秒计数器
}DelayMs_TypeDef;

/*定义变量*/
DelayMs_TypeDef Timer1;       

/*回调函数*/
void CallBack(DelayMs_TypeDef  *ptr)
{
}

/*功能函数*/
void Func1(DelayMs_TypeDef  *ptr,Callback())
{
        ;;;
        Callback(ptr)
}
就是功能函数(Func1)参数中有个函数地址,并且将功能函数的参数传递给Callback函数
请忽略该函数参数部分的语法,对回调函数不甚理解

本想问应该怎么写这个带参数的回调函数,现在应该想明白了
应该是这样:
Func1(DelayMs_TypeDef  *ptr,void (*Callback)())
{
        ;;;
        Callback(ptr);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
风铃夜思雨
1楼-- · 2019-12-21 00:51
然而 你想问的是什么问题................
728196
2楼-- · 2019-12-21 05:40
我调用了一个函数,但是我想知道他什么时候结束,运行的结果。又不想破坏封装结构,就用到了回调函数,就是函数返回时调用的
擦鞋匠
3楼-- · 2019-12-21 09:48
为什么不把函数指针也封装在DelayMs_TypeDef结构中呢?
Junsea
4楼-- · 2019-12-21 15:26
擦鞋匠 发表于 2018-4-12 16:12
为什么不把函数指针也封装在DelayMs_TypeDef结构中呢?

水平有限,吧指针封装在结构中,还得消化消化
dy22511825
5楼-- · 2019-12-21 19:18
 精彩回答 2  元偷偷看……
Junsea
6楼-- · 2019-12-22 00:25
dy22511825 发表于 2018-4-13 09:44
....回调函数不是这么使用的。。。

听大神讲课

一周热门 更多>