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