【问题标题】:pthread/uthread type variablepthread/uthread 类型变量
【发布时间】:2019-03-01 03:30:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: c pthreads


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 2021-06-22
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      相关资源
      最近更新 更多