您的位置:首页 > 其它

回调函数理解

2017-08-02 14:47 162 查看
int print_cb(void *p_node,void *p_date)

{
if((node *)p_node->p_next)//强制类型转换 
{
printf("%d",((node *)p_node)->p_next->num);
if(p_node&&!(((node *)p_node)->p_next))
{
printf("\n");
return 1;
}
}
return 0;

}

func(print_cb,NULL);

int for_each(void (*func)(void *,void *)

//void print()

//{

// node *p_node=NULL;

// for(p_node=&head;p_node;p_node=p_node->p_next)

// {

// node *p_tmp=p_node->p_next;

// if(p_tmp)

// {

// printf("%d",p_node->p_next.num);

// }

// }

// printf("\n");

//}

/*

遍历函数 

*/ 

int for_each(void (*func)(void *,void *),\

void *p_date)

//俩个函数,回调函数,回调函数使用的参数 

{
node *p_node=NULL;
for(p_node=&head;p_node;p_node=p_node->p_next)
{
//循环里调用回调函数对当前节点处理,p_node节点 
func(p_node,p_date)//回调函数使用 
//{

// if((node *)p_node->p_next)//强制类型转换 

// {

// printf("%d",((node *)p_node)->p_next->num);

// if(p_node&&!(((node *)p_node)->p_next))

// {

// printf("\n");

// return 1;

// }

// }

// return 0;

// }
//具体函数实现,func() 
{

  break;
}
 
 
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: