переменная типа pthread / uthread - PullRequest
0 голосов
/ 01 марта 2019

При изучении uthreads (из pthreads) я наткнулся на следующую строку кода:

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

Я не уверен, что uthread_create() принимает в качестве первого параметра.Это берет указатель на определенный тип не приведен к указателю на тип start_proc?Может кто-нибудь уточнить?

1 Ответ

0 голосов
/ 01 марта 2019

Первый аргумент - указатель на функцию.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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...