回调函数的声明及使用(序)
来源:互联网 发布:python inceptor 编辑:程序博客网 时间:2024/05/17 17:38
#include <stdio.h>
void MyFun(int x); /* 这个声明也可写成:void MyFun( int )*/
void (*FunP)( ); /*也可声明成void(*FunP)(int x),但习惯上一般不这样。 */
void myfun(int,int);
int main(int argc, char* argv[])
{
MyFun(10); /* 这是直接调用MyFun函数 */
FunP = &MyFun; /* 将MyFun函数的地址赋给FunP变量 */
//(*FunP)(20); /* (★)这是通过函数指针变量FunP来调用MyFun函数的。 */
FunP(20); /* (★)这是通过函数指针变量FunP来调用MyFun函数的。 */
FunP = *myfun;
(*FunP)(78,19);
}
void MyFun(int x) /* 这里定义一个MyFun函数 */
{
printf("%d\n",x);
}
void myfun(int x,int y)
{
printf("hahaha%d,%d\n",x,y);
}
void MyFun(int x); /* 这个声明也可写成:void MyFun( int )*/
void (*FunP)( ); /*也可声明成void(*FunP)(int x),但习惯上一般不这样。 */
void myfun(int,int);
int main(int argc, char* argv[])
{
MyFun(10); /* 这是直接调用MyFun函数 */
FunP = &MyFun; /* 将MyFun函数的地址赋给FunP变量 */
//(*FunP)(20); /* (★)这是通过函数指针变量FunP来调用MyFun函数的。 */
FunP(20); /* (★)这是通过函数指针变量FunP来调用MyFun函数的。 */
FunP = *myfun;
(*FunP)(78,19);
}
void MyFun(int x) /* 这里定义一个MyFun函数 */
{
printf("%d\n",x);
}
void myfun(int x,int y)
{
printf("hahaha%d,%d\n",x,y);
}
在上面的例子中函数指针的声明可以写成
void (*FunP)(); 这种声明没有标明参数,是通用的模式,调用是可以是一个参数,也可以是多个参数
例如:
FunP(20)
FunP(78,19);
也可写成void (*FunP)(int ) 这种声明标明1个参数,调用是必须是一个参数,
例如:
FunP(20)
也可以写成void (*FunP)(int,int)这种声明标明2个参数,调用是必须是一个参数,
例如:
FunP(78,19);
对函数指针的调用两种方法
1,FunP(78,19);
2,(*FunP)(78,19);
注意:当函数指针做参数时,形参的声明方法和函数指针的声明方法相同;
相关文章:http://c.biancheng.net/cpp/html/496.html
0 0
- 回调函数的声明及使用(序)
- 回调函数的使用(一)
- 回调函数的使用(二)
- 回调函数的使用(三)
- 回调函数的使用(四)
- 回调函数的概念及使用案例
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- 回调函数的使用
- JavaScript中闭包的简单应用
- View事件
- Python学习-机器学习实战-ch02KNN_part1
- 二维数组和指向指针的指针 ,指针做形参做局部变量以及内存分配
- Bitmap中的config
- 回调函数的声明及使用(序)
- IOS面试技巧
- Jquery MiNi UI V3.0 在线示例
- RabbitMQ监控(1)——RabbitMQ简介
- 理想团队模式构建的设想以及对软件流程的理解
- didReceiveMemoryWarning
- Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
- Tomcat中更改网站根目录和默认页的配置方法
- oracle 12c pdb&cdb