回调函数。 我理解的就是一个接口:
void printWelcome(int len)
{
printf("欢迎欢迎 -- %d/n", len);
}
void printGoodbye(int len)
{
printf("送客送客 -- %d/n", len);
}
void callback(int times, void (* print)(int)) //函数指针作为接口
{
int i;
for (i = 0; i < times; ++i)
{
print(i);
}
printf("/n我不知道你是迎客还是送客!/n/n");
}
void main(void)
{
callback(10, printWelcome);
callback(10, printGoodbye);
printWelcome(5);
}
或者:::::::
typedef int(*CallBack)(int *p); //声明CallBack 类型的函数指针
void call_back(int times, CallBack print) //函数指针作为接口
{
int i;
for (i = 0; i < times; ++i)
{
print(i);
}
printf("/n我不知道你是迎客还是送客!/n/n");
}
转移表。 函数指针数组:
(1).声明并初始化函数指针数组:e.g.(计算器的简单实现)
double add(double ,double);
double sub(double ,double);
double mul(double ,double);
double div(double ,double);
......
double (*per_func[])(double ,double) = {add,sub,mul,div.......}
(2) 可以替换整条switch语句
result = per_func[oper](num1,num2);