我有一個函數int handle_request(server* server, int conn_fd);
需要2個參數。 如何將它分配給這個函數指針? void (*func)(void* input, void* output)
如何分配函數指針?
我一直在努力做的事情一樣
void (*func)(void* input, void* output) = handle_request;
and tried these,但我總是得到
警告:初始化從兼容的指針類型[默認啓用]
我有一個函數int handle_request(server* server, int conn_fd);
需要2個參數。 如何將它分配給這個函數指針? void (*func)(void* input, void* output)
如何分配函數指針?
我一直在努力做的事情一樣
void (*func)(void* input, void* output) = handle_request;
and tried these,但我總是得到
警告:初始化從兼容的指針類型[默認啓用]
正如在你的問題中提到,如果函數原型返回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)
如果你嘗試將它自己的方式,將發出警告。
什麼的原型'handle_request'是什麼樣子? –
'handle_request'的簽名需要匹配你的函數指針定義 - 也許你應該發佈這個定義呢? –
handle_request函數返回一個'integer',你聲明的函數指針返回一個'void'。 – 2013-12-18 09:13:36