我正在阅读linux内核代码,遇到类似以下内容:
typedef void (* gps_location_callback)(GpsLocation* location?
然后它可以像以下一样使用:
gps_location_callback location_cb;
有人能告诉我这种typedef是什么意思吗?我以前从未见过这样的东西..谢谢!
这是一个函数指针.这种类型的变量指向一个函数,其签名是void (GpsLocation*):
void foo(GpsLocation *);
gps_location_callback f = foo;
// now use f(p) etc
没有typedef你必须写:
void (*f)(GpsLocation *) = foo;