Есть несколько вещей, которые я не понимаю в функции 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
сможет сделать с данными неизвестного типа?