gpt4 book ai didi

c - pthread_create 的正确参数是什么

转载 作者:行者123 更新时间:2023-11-30 17:14:52 39 4
gpt4 key购买 nike

我看过pthread_create的文档

在底部的示例中,他们使用的是:

pthread_create(&tinfo[tnum].thread_id, &attr, &thread_start, &tinfo[tnum]);

&thread_start - 与 &

但在我在网上看到的其他示例中,他们没有使用 &:

pthread_create(&tinfo[tnum].thread_id, &attr, thread_start, &tinfo[tnum]);

我也测试过,它可以在没有 & 的情况下工作。

但是哪个才是正确的方法呢?

最佳答案

简短回答:两者都是正确的。

<小时/>

pthread_create的签名是:

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg);

所以 start_routine 是一个函数指针,它接受一个 void * 参数并返回 void *

回到你的问题,我假设thread_start是函数的名称,所以&thread_start是一个函数指针,这是正确的。

但是,thread_start 也是正确的,因为函数名称会自动转换为函数指针。

关于c - pthread_create 的正确参数是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30152640/

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