gpt4 book ai didi

c - 我怎样才能摆脱这个c警告?

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

这里的 sock_client 是一个套接字:

LaunchThread(proxy_handlereq, sock_client);    

static void LaunchThread(int (*func)(), void *parg)
{
#ifdef WINDOWS
LPDWORD tid;
CreateThread(NULL, 0L, (void *)func, parg, 0L, &tid);
#else
pthread_t pth;
pthread_create(&pth, NULL, func, parg);
#endif
}

我收到以下警告:警告:从不同大小的整数转换为指针

如何将其作为 LaunchThread 的第二个参数传递?

最佳答案

试试这个:

LaunchThread(proxy_handlereq, (void*)sock_client);
<小时/>

编辑:

好的,现在我明白了:sock_client 只是端口的整数号。您想将此数字传递给另一个线程,对吗?

(取决于您系统上的指针大小)您可以摆脱这个肮脏的 Actor 警告:

LaunchThread(proxy_handlereq, (void*)(0xFFFFFFFFFFFFFFFF & sock_client);

但实际上我建议您创建一个数据结构您想要传递给其他线程的所有信息,例如:

struct MyData {
int socket_no;
const char* host_name;
...
};

然后创建一个实例并将指向该实例的指针传递给您的 LaunchThread 函数。

<小时/>

编辑2:

您可以在这个问题中看到一些示例代码: Multiple arguments to function called by pthread_create()?

关于c - 我怎样才能摆脱这个c警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6054198/

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