有一个函数接受表单的函数指针参数,void *(*func)(void *)
我正在阅读一些使用以下参数调用它的代码(void *(*)(void *))(-1)
。
这只是转换-1
为正确的函数指针类型还是其他?我不确定这意味着什么。
有一个函数接受表单的函数指针参数,void *(*func)(void *)
我正在阅读一些使用以下参数调用它的代码(void *(*)(void *))(-1)
。
这只是转换-1
为正确的函数指针类型还是其他?我不确定这意味着什么。
是的,这只是一个类型转换。但是,如果没有在上下文中查看代码,则实际上不可能确定为什么有人会这样做。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
是的。它试图将 -1 转换为通常不应该执行的函数指针类型(除非那里有一些真正有效的理由和逻辑)。