gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 23:08:18 26 4
gpt4 key购买 nike

我试图传递一个函数指针,但我一直收到编译器错误。我通常不传递函数指针,但这种情况需要它。我认为您只需查看声明即可了解我做错了什么。

在我的头文件中:

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

在实现上是一样的:

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

在调用这个函数时我正在做:createThread(&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

最佳答案

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

关于C++ 将函数指针作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com