gpt4 book ai didi

c - 将数组传递给 C 中的 pthread_create

转载 作者:太空宇宙 更新时间:2023-11-04 05:04:09 25 4
gpt4 key购买 nike

将数组传递给 pthread_create 的正确方法是什么?我看到的每个地方都是 (void*)myArray) 为什么会这样?为什么我必须输入 void*?其他语言的数组名不够用?作为函数参数,为什么 void *add_first_quat(void *a) 为什么我们要放置 void *

最佳答案

(void*)myArray) why is it so? why I have to put void*? Array name is not enough as we do in other languages?

传递给线程函数时,不必强制转换数组。这可能是由于旧习惯或缺乏理解 void * 与任何其他数据指针兼容。转换充其量是多余的,最坏的情况下可能会导致错误。

这是传递数组的正确方法:

pthread_create(&thrd_id, 0, thread_func, array); 

as a function argument why void *add_first_quat(void *a) why we are putting void *?

因为这是 pthreads 库的线程函数所期望的。原因是它允许您将任何数据指针传递给线程函数(也称为“通用”指针类型)。假设您有 3 个线程(相同的线程函数)作用于不同类型的“结构”数据。

关于c - 将数组传递给 C 中的 pthread_create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33036111/

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