发布网友 发布时间:2022-04-23 04:56
共1个回答
热心网友 时间:2023-10-15 12:16
可以这样声明,但是在调用pthread_create函数的时候需要将线程函数的指针强制类型转换成void *(pthread)(void*),否则编译器会报错。追问但是我书上在调用是写的是(void *)&pthread追答Linux上的man文档是这样写的
NAME
pthread_create - thread creation
SYNOPSIS
#include
int pthread_create(pthread_t *restrict thread, pthread_attr_t *restrict attr, *(*start_routine)(void*), void *restrict arg);
如果你传递的参数不符的话只有一个可能,就是被编译器自动类型转换了。这样做也许没问题,但随着编译器版本的更新,语法检查越来越严禁,现在编译通过了,并不代表以后也能够成功编译