[英]C++ passing function pointers as arguments
我正在嘗試傳遞函數指針,但我不斷收到編譯器錯誤。 我通常不會傳遞函數指針,但這種情況需要它。 我認為你只需看到聲明就可以看出我做錯了什么。
在頭文件中我有:
pthread_t * createThread(void *(*func)(void *), string arg)
在實施中它是相同的:
pthread_t * createThread(void *(*func)(void *), string arg)
在調用這個函數時我正在做:createThread(&function,“再次運行”)
並且聲明的功能是:
void *afunction(void *ptr) //(no header, same for both declaration and implementation).
但編譯器吐了出來:
Undefined symbols for architecture x86_64:
"createThread(void* (*)(void*), std::basic_string<char, std::char_traits<char>, std::allocator<char> >)", referenced from:
spawnSingleThreadTest() in threadTests.o
您沒有將實現鏈接到可執行文件。 這不是關於函數指針。 這是你編譯源代碼的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.