pthread/uthread 类型变量

pthread/uthread type variable

在研究uthreads(来自pthreads)时,我遇到了下面这行代码:

uthread_t uthread_create (void* (*start_proc)(void*), void* start_arg) 

我不确定 uthread_create() 将什么作为第一个参数。是否将指向非特定类型的指针转​​换为指向类型 start_proc 的指针?有人可以澄清一下吗?

第一个参数是函数指针。 start_proc 指向一个函数,该函数采用单个 void * 参数和 returns 一个 void *,在本例中是线程的入口点。此外,uthread_create 的第二个参数是将在调用时传递给 start_proc 的参数。

像这样的函数将满足函数指针:

void *my_thread(void *p)
{
    char *s = p;
    printf("s=%s", s);
    return NULL;
}

您可以这样调用 uthread_create

uthread_t tid;
char str[] = "test string";
tid = uthread_create(my_thread, str);