回调函数
来源:互联网 发布:淘宝支付网站 编辑:程序博客网 时间:2024/06/13 08:52
int getValue(int a, int b, int (*p)(int , int));
getValue: 函数名
int (*p)(int ,int): 函数指针做getValue函数的参数
int value = getValue(3, 6, maxValue);(函数调用:getValue函数执行过程中再调用(回调)maxValue)
例子:写一个函数查找成绩在90以上的,使用回调函数在名字后面加上高富帅。
#import <Foundation/Foundation.h>
//定义一个学生结构体
typedef struct stu{
char name[20];
int age;
int score;
}Stu;
//声明一个函数,对对一个stu数组进行比较,及字符连接
void sort(Stu stu[],int count)
{
for (int i = 0;i < count ;i++) {
if (stu[i].score > 90) {
strcat(stu[i].name, "*高富帅");
}
}
}
//声明一个函数,实现将Stu结构体数组比较,及字符连接好在输出
void ShowStudents(Stu stu[], //我们要操作的数据
int count, //数据的辅助属性
void (*p) (Stu stu[],int count) //一些繁琐的功能抽离出来交给其他人做
)
{
//需要对stu进行比较,及字符连接
p(stu,count);
//现将学生信息打印到控制台,模拟核心代码
for (int i =0;i < count; i++) {
Stu temp = stu[i];
printf("%s--%d--%d\n",temp.name,temp.age,temp.score);
}
}
int main(int argc, const char * argv[])
{
Stu students[5] = {
{"xulixia",22,87.0},
{"jingjing",23,78.5},
{"xujie",23,98.8},
{"menhao",26,92.1},
{"benfang",24,93.9}
};
void (*p) (Stu student[],int count) = NULL; //声明一个排序指针
p = sort; //将函数赋值到函数指针上
ShowStudents(students,5,p); //利用函数指针为核心代码系统进行排序
return 0;
}
- .NET 回调函数
- 回调函数
- 回调函数
- 回调函数概念
- 回调函数
- 回调函数
- 回调函数
- 回调函数 相关
- delphi 回调函数
- 回调函数
- 回调函数
- 回调函数学习
- 回调函数
- 关于回调函数
- 透析回调函数
- 回调函数
- 什么是回调函数
- 回调函数
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- 编译3.10内核 出现错误 “undefined reference to...." 解决方法
- sap 内存优化
- 剑指offer 面试题7
- ListOrderedMap
- 回调函数
- 二分 cf 343c div1
- Oracle建立表空间和用户
- Odoo环境下Ubuntu服务器性能优化--参数调整
- 互联网要怎么做
- URI (Uniform resource identifier) 统一资源标识符
- 老菜鸟致青春,程序员应该选择java 还是 c#-(转)
- 解决Android Studio 编译缓慢和中文编码问题
- 引用库出错