Есть несколько вещей, которые я не понимаю в функции pthread_create
.
вот заголовок
int pthread_create(pthread_t *restrict thread,
const pthread_attr_t *restrict attr,
void *(*start_routine)(void*),
void *restrict arg);
Во-первых, я не знаком с синтаксисом void *(*start_routine)(void*),
. Я знаю, что запрошенный здесь аргумент — это имя функции, которая возвращает void *
и принимает в качестве аргумента один void *
. Предположительно pthread_create
будет ссылаться на эту функцию как start_routine
. Итак, я полагаю, что этот аргумент будет указателем на функцию? Если да, то какие ключевые элементы синтаксиса делают это так?
Во-вторых, почему pthread_create
ожидает функцию с типом возвращаемого значения void *
? Что pthread_create
сможет делать с данными неизвестного типа?