簡體   English   中英

C ++將函數指針作為參數傳遞

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

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