gpt4 book ai didi

c - 将2个结构作为参数传递给C中的pthread

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:56 31 4
gpt4 key购买 nike

我能否将两个结构作为参数传递给 C 程序中的 pthread。我需要做这样的事情:

void *funtion1(void *pass_arg, void *pass_arg1)
{
struct thread_arg *con = pass_arg;
struct thread_arg1 *con = pass_arg1;
//necessary code
}
int main()
{
pthread_t threaad;
//necessary code
while(1)
{
th1 = pthread_create(&threaad, NULL, function1, (void *)&pass_arg, (void*)&pass_arg);
//necessary codes
}
pthread_exit(NULL);
return 1;
}

我的意思是有什么方法可以在使用 pthread 时将两个结构传递给同一个函数吗?运行平台:Linux。

最佳答案

不直接,因为 libpthread 中的函数只接受一个用户数据参数。但这应该足够了,不是吗?

struct user_struct {
void *p1, *p2;
} arg = { &arg1, &arg2 };

pthread_create(&tid, NULL, threadfunc, &arg);

此外,不要将指针转换为 void *,这是多余的、危险的并且会降低可读性。

关于c - 将2个结构作为参数传递给C中的pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15862081/

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