gpt4 book ai didi

c++ - C++ 中的显式类型转换

转载 作者:行者123 更新时间:2023-11-30 01:57:30 24 4
gpt4 key购买 nike

我正在尝试将 C 代码转换为 C++。在我的 .c 文件中,我有这样的定义:

void services(void);
void transfers(void);

更进一步,一个线程会像这样初始化上面两个:

_beginthread((void*) services,0,NULL);
_beginthread((void*) transfers,0,NULL);

当我尝试编译时,我在上面的两个地方都遇到了如下错误:

Conversion from void* to pointer to non-void required an Explicit cast: Cannot convert parameter 1 from void* to void(_cdecl*)(void*)

我对此很困惑,希望你们能为我说清楚:-)

最佳答案

解决方案是使用正确类型的函数并且转换它们。如果参数与代码无关,则忽略该参数。

void services(void*);
void transfers(void*);

_beginthread(services, 0, NULL);
_beginthread(transfers, 0, NULL);

如果您绝对不能更改功能,例如如果您无权访问源代码,请使用包装器:

void correct_services(void*) { services(); }
_beginthread(correct_services, 0, NULL);

编译器在这里帮助你 - 不要试图通过对它说谎来解决它。

关于c++ - C++ 中的显式类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18656375/

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