【发布时间】:2014-03-10 05:23:33
【问题描述】:
据我所知,我可以定义一个函数类型:
typedef void (fn)(void);
我也可以定义一个函数指针类型:
typedef void (*pfn)(void);
有两个功能。第一个函数的参数类型是函数,另一个是函数指针:
void a(fn fn1)
{
fn1();
}
void b(pfn fn1)
{
fn1();
}
我实现了一个函数回调:
void callback(void)
{
printf("hello\n");
}
并将其作为参数传递给 a 和 b:
int main(void) {
a(callback);
b(callback);
return 0;
}
a 和 b 都运行良好,打印"hello"。
所以我想知道定义函数类型和函数指针类型有什么区别?或者实际上,它们是一样的?
【问题讨论】:
标签: c