关于回调函数的一段示例代码
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;
}
#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;
}
相关文章推荐
- javascript 自定义回调函数示例代码
- 关于bitset 的一段代码--初级
- 关于一段地址对齐的位运算代码的解释
- 一段关于带阴影的UIView切圆角的代码
- 一次错误的总结(关于:在实例方法和类方法公用一段代码)
- [C++基础]040_可变参数va_list的一段示例代码
- 实现表单对齐样式的一段示例代码
- 关于mina的文件上传代码示例
- 关于Qt下如何获取屏幕尺寸以及打印的代码示例
- 关于异步回调的一段代码及相关总结
- 一段有趣的关于C++const的代码
- 一段关于Drag拖放的PC端代码
- 回调函数与匿名函数,一段值得研究的代码
- 关于JS对正文进行字数统计的一段代码
- 一段socket代码示例
- 关于Const的一段代码
- 关于线程池的一段代码
- 一段ffmpeg视频解码为YUV420P的示例代码
- 关于线程的一些概念和关于线程返回值的简单示例代码
- 收藏的一段关于java大数运算的代码