函数指针与回调
来源:互联网 发布:昌盛软件游戏机 编辑:程序博客网 时间:2024/06/06 07:04
1.通用函数
1 # include <stdio.h> 2 # include <string.h> 3 4 void fun(int x); // void fun(int); 5 6 int main(void) 7 { 8 fun(10); 9 10 return 0; 11 } 12 13 void fun(int x) 14 { 15 printf("%d\n", x); 16 }
2.函数指针变量的声明
# include <stdio.h> 2 # include <string.h> 3 4 void fun(int x); // void fun(int); 5 void (*Pfun)(int ); 6 7 int main(void) 8 { 9 //写法一 10 Pfun = &fun; 11 (*Pfun)(1); 12 //写法二 13 Pfun = fun; 14 (Pfun)(2); 15 //写法三 16 Pfun = &fun; 17 (Pfun)(3); 18 //写法四 19 Pfun = fun; 20 (*Pfun)(4); 21 22 return 0; 23 } 24 25 void fun(int x) 26 { 27 printf("%d\n", x); 28 }四种写法都可以正常运行
MyFun的函数名与FunP函数指针都是一样的,即都是函数指针。MyFun函数名是一个函数指针常量,而FunP是一个函数数指针变量,这是它们的关系。
但函数名调用如果都得如(*MyFun)(10);这样,那书写与读起来都是不方便和不习惯的。所以C语言的设计者们才会设计成又可允许MyFun(10);这种形式地调用
FunP函数指针变量也可以FunP(10)的形式来调用
在函数的申明处:
void MyFun(int ); //不能写成void (*MyFun)(int )。
void (*FunP)(int ); //不能写成void FunP(int )。
调用指针
void MyFun(int ); //不能写成void (*MyFun)(int )。
void (*FunP)(int ); //不能写成void FunP(int )。
调用指针
# include <stdio.h># include <string.h>void fun1(int x);void fun2(int x);void fun3(int x);typedef void (*pfun)(int );void callfun(pfun, int);int main(void){callfun(fun1, 1);callfun(fun2, 2);callfun(fun3, 3);return 0;}void callfun(pfun fp, int x){(*fp)(x);}void fun1(int x){printf("%d\n", x);}void fun2(int x){printf("%d\n", x);}void fun3(int x){printf("%d\n", x);}
0 0
- 函数指针和指针函数,函数指针与回调
- 函数指针与回调
- 函数指针与回调
- 函数指针与回调机制
- 函数指针与指针函数---应用为函数的回调
- c++虚函数的前奏--函数指针与回调
- 指针函数与函数指针
- 指针函数与函数指针
- 函数指针与指针函数
- 指针函数与函数指针
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针 与 指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- RxJava 和 RxAndroid 四(RxBinding的使用)
- Linux中gdb 查看core堆栈信息
- Makefile和Android.mk的基情
- oracle异地恢复
- QMediaPlayer播放视频
- 函数指针与回调
- RxJava 和 RxAndroid 五(线程调度)
- js指定滚动条位置
- 转载:SAE+Servlet+JSP实现微信公众平台OAuth2.0网页授权的使用
- HDU1029 Ignatius and the Princess IV
- Unity 中的旋转
- html5+css3学习笔记
- Linux编程常用函数总结
- rsync安装配置