Đầu mục chức năng cho pthread_create
trông như thế này:Tại sao start_routine cho pthread_create trở void * và mất void *
int pthread_create(pthread_t * thread,
const pthread_attr_t * attr,
void * (*start_routine)(void *),
void *arg);
Tôi hiểu tất cả ngoại trừ việc con trỏ hàm cho start_routine
có dạng void* (*fpointer) (void*)
có nghĩa là nó lấy một con trỏ void void và trả về một con trỏ void void.
Con trỏ void mà nó cần chỉ là một cách để vượt qua trong một đối số cho start_routine, tôi nhận được phần đó, nhưng tôi không hiểu tại sao hàm trả về một con trỏ void? Mã nào thậm chí sẽ nhận thấy con trỏ void đó?