C ++将函数指针作为参数传递

时间:2012-04-18 08:08:10

标签: c++ g++

我正在尝试传递一个函数指针,但我不断收到编译器错误。我通常不会传递函数指针,但这种情况需要它。我认为你只需看到声明就能看出我做错了什么。

我在头文件中的

pthread_t * createThread(void *(*func)(void *), string arg)

并且在实现中它是相同的:

pthread_t * createThread(void *(*func)(void *), string arg)

在调用此函数时,我正在做: createThread(&功能,“再次运行”)

并且声明的功能是:

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

1 个答案:

答案 0 :(得分:1)

您没有将实现链接到您的可执行文件。这不是关于函数指针。这就是你编译源代码的方式。