回调函数
2016-12-03 23:55
344 查看
//#include<stdio.h>
// 方法指针的格式为:int (*ptr)(char *p) 即:返回值(指针名)(参数列表)
//typedef int (*CallBackFun)(char *p); // 为回调函数命名,类型命名为 CallBackFun,参数为char *p
//int Afun(char *p) { // 方法 Afun,格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun
// printf("Afun 回调打印出字符%s!\n", p);
//return 0;
//}
//int Cfun(char *p) { // 方法 Bfun,格式符合 CallBackFun 的格式,因此可以看作是一个 CallBackFun
// printf("Cfun 回调打印:%s, Nice to meet you!\n", p);
//return 0;
//}
//int call(CallBackFun pCallBack, char *p) { // 执行回调函数,方式一:通过命名方式
// printf("call 直接打印出字符%s!\n", p);
// pCallBack(p);
//return 0;
//}
//// int call2(char *p, int (*ptr)(char *p))
//int call2(char *p, int (*ptr)()) { // 执行回调函数,方式二:直接通过方法指针
// printf("==============\n", p);
// (*ptr)(p);
//}
//int call3(char *p, CallBackFun pCallBack){ // 执行回调函数,方式一:通过命名方式
// printf("--------------\n", p);
// pCallBack(p);
//}
//int main() {
// char *p = "hello";
// call(Afun, p);
// call(Cfun, p);
// call2(p, Afun);
// call2(p, Cfun);
// call3(p, Afun);
// call3(p, Cfun);
// // int i = getchar();
// // printf("Input: %c \n", i);
//return 0;
//}
#include <stdio.h>
#include <iostream>
int (*fun)(char *p);
typedef int (*Callback)(char *p);
int Afun(char *p)
{
std::cout<<"1111";
return 0;
}
int call1(char *p, /*int (*fun)(char *p)*/Callback fun)
{
fun(p);
return 0;
}
int main()
{
char *p = "hell";
call1(p,Afun);
return 0;
}
相关文章推荐
- Android基础第四天
- 疑难杂症(2) -- UEditor报错TypeError: me.body is undefined
- GDB调试汇编堆栈过程分析
- ActiveMQ启动多个broker
- 第四届逻辑推理大赛中南大学初赛
- 学编程需要攻克的8个障碍!
- [Angular2 Router] Guard: CanLoad
- C++继承与派生学习笔记
- 9、django
- 和我一起动手写FastCGI之“准备篇”
- 例解 Linux 下 Make 命令
- SQL 优化经验总结34条
- 网上图书商城2--Category模块
- 验证随机码忽略大小写
- 掌握shell应用,Linux 任你行走!
- C语言——内存分配的方式
- 计算机网络入门概念理解
- OKVIS IMU 误差公式代码版本
- 20145310 GDB调试汇编堆栈分析
- DH算法实现_关于Imooc上moocer老师的DH算法的补充