//函数指针类型重定义,指向一个函数
typedef void(*app)();//类型重定义
typedef int(*PFUN)(int, int);
void sendShunFeng(){
printf("发顺丰");
}
void sendYunda(){
printf("发韵达");
}
void sendYuanTong(){
printf("发圆通");
}
typedef void (*SEND)();
//秘书
//回调函数就是函数指针作为函数参数,调用时传递对应的函数的地址
//
void assistant(int money, SEND send) {//函数指针用来接收地址
send();//发快递
}
typedef int (*Guang)(int, int);
int xiaoGuang(int x, int y, Guang guang){//函数指针类型变量名就是要调用的函数的函数名,在主函数中要实现一行代码实现要做的事情
return guang(x, y);
}
int main(int argc, const char * argv[])
{
//函数调用时,将对应的函数地址作为参数传入
//assistant(1,sendShunFeng);
int value = xiaoGuang(10, 5, minValue);
printf("%d\n", value);
printf("%d\n",xiaoGuang(12, 23, maxValue));
//函数指针:指向函数的指针变量
//函数使用的三个过程:
/**
*1.函数声明(没有函数体)
2.函数实现(包含:返回值类型,函数名, 行参列表,函数体)
3。函数调用(函数名+实参列表)
*/
/**
* 函数指针的定义‘
定义一个函数指针,指向minvalue函数
int minvalue(int x,int y);
p是函数指针变量名
null是函数指针变量的初值
int (*)(int x, int y) 函数指针类型
//定义一个函数指针,名字为p ,指向了一个返回值类型为int,并且有两个整型参数的函数
*/
// //指针变量赋值,函数地址
// //函数名代表了函数的首地址
// p = minValue;//p指向了minvalue函数
// //当把函数的地址赋给指针变量p之后,指针变量p就可以当作函数名使用</span>