swear77
一个不懂的c定义语句,请看
typedef void *(*vm_shutdown_t)(vm_instance_t *vm, void *data);
这句话是什么意思?定义了什么类型?
请赐教。
new_learner
返回void* ,参数类型为vm_instance_t* 和 void* 的函数指针
zaszas
typedef void *(*vm_shutdown_t)(vm_instance_t *vm, void *data);
如2,3楼所说,就是一个函数指针:
具体来讲,就是定义了这么一种类型,指向函数的指针类型,这种函数具有如下特点,它有两个参数,参数的类型分别是vm_instance_t *,void *,另外,这种函数的返回值是void *,,,
可以看下这个简单一点的例子:
typedef int (*FUN)(int a);
这就是一个定义了返回值为int类型的,拥有一个int类型的,函数类型。
可以参考精华贴中的一篇名为‘右左法则’的介绍,,,,
[[i] 本帖最后由 zaszas 于 2008-2-15 12:33 编辑 [/i]]
cugb_cat
[quote]原帖由 [i]zaszas[/i] 于 2008-2-15 12:32 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7963685&ptid=1053032][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
typedef void *(*vm_shutdown_t)(vm_instance_t *vm, void *data);
如2,3楼所说,就是一个函数指针:
具体来讲,就是定义了这么一种类型,指向函数的指针类型,这种函数具有如下特点,它有两个参数,参数的类 ... [/quote]
还是直接去看《C专家编程》吧,第三章有很详细的介绍。
langue
:mrgreen: K&R 上面也有详细说明
net_robber
以前有个类似的讨论signal()函数的参数的,楼主可以参考下,也算是个比较复杂的typedef