在研究uthread(来自pthread)时,我遇到了以下代码行:
uthread_t uthread_create (void* (*start_proc)(void*), void* start_arg)
我不确定uthread_create()
是第一个参数。是否将没有特定类型的指针转换为start_proc类型的指针?有人可以澄清吗?
答案 0 :(得分:0)
第一个参数是函数指针。 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);