一、函数指针定义
函数地址:
int maxValue(int a,int b)
{
return a>b?a:b
}
函数名和数组名一样是地址,是地址常量!
函数指针定义
int maxValue (int a,int b)
int(*p)(int a,int b) =null;
函数指针定义,p是变量,其他是类型(通常没有形参a,b)
函数指针使用
p = maxValue; 赋值函数名
int m = p(3,5); 指针可当函数⽤
二、函数回调
CALL BACK
函数指针做参数
int getValue(int a,int b,int(*p)(int,int);
函数名 函数指针做getValue函数的参数
函数调用
i nt value = getValue(3,5, maxValue)
getValue 执⾏行的过程中再调⽤用 ( 回调 ) maxValue
三、动态排序
四、函数返回值是函数指针
PFUN getFunctionByName(char * name);
数据结构
typedef struct nameFunctionPair {
char name[30];
PFUN function;
}NameFunctionPair;
NameFunctionPair list[3];
函数地址:
int maxValue(int a,int b)
{
return a>b?a:b
}
函数名和数组名一样是地址,是地址常量!
函数指针定义
int maxValue (int a,int b)
int(*p)(int a,int b) =null;
函数指针定义,p是变量,其他是类型(通常没有形参a,b)
函数指针使用
p = maxValue; 赋值函数名
int m = p(3,5); 指针可当函数⽤
二、函数回调
CALL BACK
函数指针做参数
int getValue(int a,int b,int(*p)(int,int);
函数名 函数指针做getValue函数的参数
函数调用
i nt value = getValue(3,5, maxValue)
getValue 执⾏行的过程中再调⽤用 ( 回调 ) maxValue
三、动态排序
四、函数返回值是函数指针
PFUN getFunctionByName(char * name);
数据结构
功能名 | 调⽤用函数 |
“max” | maxValue |
“min" | minValue |
“avg" | avgValue |
typedef struct nameFunctionPair {
char name[30];
PFUN function;
}NameFunctionPair;
NameFunctionPair list[3];