首页 > 解决方案 > pthread/uthread 类型变量

问题描述

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

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

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

标签: cpthreads

解决方案


第一个参数是一个函数指针。 start_proc指向一个接受单个void *参数并返回 a的函数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);

推荐阅读