函数指针类型和回调函数
typedef void (*pf)(void*);
void use_cb(pf cb,void*date)
{(*cb)(data);
}
void f1(void* data)
{printf("%s",(char*)data);
}
void main(void)
{use_cb(f1,void*)"hello world!\n");
}
程序中有很多笔误不一一指出。
pf是定义void*为参数void为返回值的函数指针类型,
use_cb有两个参数,第一个是函数指针,第二个是参数数据,函数体执行第一个参数指向的函数,并将第二个参数作为指向函数的参数。
f1是定义的一个可以被pf指向的函数。
main调用的结果是f1("hello world!\n");
这段代码是一段典型的回调函数用法。回调函数的实质是将函数指针作为参数。