您的位置:首页 > 编程语言

关于回调函数的一段示例代码

2009-05-29 16:55 239 查看
#include <stdio.h>
#include <iostream>
#include <string>
#include <malloc.h>
#include <winsock2.h>

using namespace std;

typedef void (*f1) ();// 为函数指针声明类型定义
void (*p) (); //p是指向某函数的指针
void func1()
{
/* do something */
printf("From func1(), Hello World!/n");
}

void caller(void(*ptrfunc1)())
{
ptrfunc1(); /* 调用ptr指向的函数 */
}

//typedef bool (*f2) (int *);// 为函数指针声明类型定义
//bool (*q) (int *); //p是指向某函数的指针

bool func2(int* t_i)
{
/* do something */
printf("From func2() = %d, Hello World!/n", (*t_i)++);
return true;
}

void caller2(bool (*ptrfunc2)(int *), int * i)
{
ptrfunc2(i); /* 调用ptr指向的函数 */
}

int main(int argc, char* argv[])
{
printf("From main(), Hello World!/n");
printf("/n");

//无参数调用

//p = func1; /* 传递函数地址地址 */
caller(func1); /* 传递函数地址到调用者 */

//有参数调用
int i = 0;
for (int j = 0; j < 10; j++)
{
caller2(func2, &i); //* 传递函数地址到调用者 */
}

//有参数调用第二次
i = 0;
//q = func2; /* 传递函数地址地址 */
//caller2(q, &i); /* 传递函数地址到调用者 */

printf("/n");
printf("From main(), Hello World!/n");

getchar();

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