我正在尝试传递函数指针,但我不断收到编译器错误。我通常不传递函数指针,但这种情况需要它。我认为您只需要查看声明即可了解我做错了什么。
在头文件中我有:
pthread_t * createThread(void *(*func)(void *), string arg)
在实现中是一样的:
pthread_t * createThread(void *(*func)(void *), string arg)
在调用这个函数时,我正在做: createThread(&afunction, "ran again")
而afunction的声明是:
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