[英]How do I assign function pointers?
我有一个函数int handle_request(server* server, int conn_fd);
需要2个参数 如何将其分配给该函数指针? void (*func)(void* input, void* output)
我一直在尝试做类似的事情
void (*func)(void* input, void* output) = handle_request;
并尝试了这些,但我总是得到
警告:从不兼容的指针类型初始化[默认启用]
如您的问题所述,如果函数原型返回int,则指针必须与之匹配。 如果retuzrn类型应该为空,则指针也将为空。
void handle_request(void* input, void* output)
{
}
int main(int argc, _TCHAR* argv[])
{
void (*func)(void* input, void* output) = handle_request;
return 0;
}
要么
int handle_request(void* input, void* output)
{
return 0;
}
int main(int argc, _TCHAR* argv[])
{
int (*func)(void* input, void* output) = handle_request;
return 0;
}
您的函数指针应与您的函数签名匹配。 这意味着您可以分配函数指针:
void (*func)(void* input, void* output)
功能:
void handle_request(void *input, void *output)
如果尝试这样做,将发出警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.