簡體   English   中英

如何分配函數指針?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM