C语言中的回调函数(函数指针)
来源:互联网 发布:用友软件的售后 编辑:程序博客网 时间:2024/05/17 23:32
#include <stdio.h>
static int Test1();static int Test2(int num);typedef int(*HaHa)(); //***1111*****typedef int(*CallBack)(int num);
int Test1(){ printf("%s/n","Hello world!"); return 0;}
int Test2(int num){ int i;
for (i=0; i<num; i++) { printf("The %d th charactor is: %c/n", i, (char)('a' + i%26)); } return 0;}
void Caller1(HaHa ptr)//指向函数的指针作函数参数,与***1111*****处的定义保持一致{ ptr(); //ptr后面的()不可少}
//n实际上是ptr函数要用到的参数,但不能写成void Caller2(CallBack ptr(int n))void Caller2(int n, CallBack ptr){ ptr(n); return;}
int main(){ printf("11111111************************/n"); Caller1(Test1); //相当于调用Test1(); printf("22222222************************/n"); Caller2(30, Test2); //相当于调用Test2(30); return 0;}
/* 以上通过将回调函数的地址传给调用者从而实现调用,但是需要注意的是带参回调函数的用法。 要实现回调,必须首先定义函数指针。函数指针的定义这里稍微提一下。比如:
int (*ptr)(); 这里ptr是一个函数指针,其中(*ptr)的括号不能省略, 因为括号的优先级高于星号,那样就成了一个返回类型为整型的函数声明了。
通过typedef将int (*ptr)()定义成了int (*CallBack)()只是为了直观,你可以起别的名字,比如 typedef int(*HeHe)(); typedef int(*CallBack)(int num);*/
- C语言中的回调函数(函数指针)
- 函数指针中的回调函数(C语言版本)
- 【C语言】二级指针,函数指针,回调函数
- C语言回调函数与函数指针
- c语言-函数指针和回调函数
- C语言--函数指针和回调函数
- C语言函数指针与回调函数
- 【C语言】函数指针与回调函数
- C语言函数指针之回调函数
- C语言中的指针之回调函数
- delphi 中的函数指针 回调函数
- C 函数指针 回调函数
- C 函数指针与回调函数
- C语言中函数指针、指针函数、回调函数的简单含义
- [学习记录]Objective-C回调函数(函数指针)
- 浅谈C/C++回调函数(Callback)& 函数指针
- C语言学习笔记(21) 函数指针、回调函数及复杂指针阅读技巧
- 探讨C语言中的回调函数
- VC中用简易方法实现淡入淡出的启动画面
- 用CSS设计纵向导航菜单(div+h1+h2)
- 什么是网盾,什么是网盾工程?
- 让BeanUtils的copyProperty方法支持String与java.util.Date的类型转换
- 学电脑IT我建议大家学网盾?
- C语言中的回调函数(函数指针)
- #pragma预处理指令 详细介绍
- VC实现线程池
- C++关键字(static/register/atuo/extern/volatile/const)释疑
- 用Access當資料來源時,不能更新資料的原因
- C# 利用反射动态创建对象[摘录]
- CString ,string, char 的操作
- SQL Server下字符串,整数转换成16进制字符串的方法
- 实现 ajax 多项选择框