回调函数理解
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;
}
}
}
{
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;
}
}
}