0

有一个函数接受表单的函数指针参数,void *(*func)(void *)我正在阅读一些使用以下参数调用它的代码(void *(*)(void *))(-1)

这只是转换-1为正确的函数指针类型还是其他?我不确定这意味着什么。

4

2 回答 2

2

是的,这只是一个类型转换。但是,如果没有在上下文中查看代码,则实际上不可能确定为什么有人会这样做。cdecl用它来回答这样的问题通常很方便:

$ cdecl
Type `help' or `?' for help
cdecl> explain (void *(*)(void *))
cast unknown_name into pointer to function (pointer to void) returning pointer to void
于 2012-08-05T04:22:18.910 回答
0

是的。它试图将 -1 转换为通常不应该执行的函数指针类型(除非那里有一些真正有效的理由和逻辑)。

于 2012-08-05T04:22:58.237 回答