[英]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.