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);
在研究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);