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);
}