void display_year(char *str)
{
printf("display %s/n", str);
}
void display_month(char *str)
{
printf("display %s/n", str);
}
void display_day(char *str)
{
printf("display %s/n", str);
}
void display(char *str, void (*call_back)(char *))
{
call_back(str);
}
//直接使用变量方式
int test1()
{
void (*call)(char *); // 函数指针
call = &display_year; // 赋值
call("year"); // 调用
call = &display_month; // 赋值
call("month"); // 调用
call = &display_day; // 赋值
call("day"); // 调用
}
//作为参数传递方式
int test2()
{
display("year", display_year);
display("month", display_month);
display("day", display_day);
}