将pthread_t传递给函数时出现奇怪的错误

ama*_*nda 2 c multithreading pthreads

我有一个C头文件,它定义了以下函数:

void my_func(pthread_t tid);
Run Code Online (Sandbox Code Playgroud)

这由另一个函数定义:

void my_func(pthread_t tid) {
...
Run Code Online (Sandbox Code Playgroud)

当我编译时,它说:

****.h:2: error: expected specifier-qualifier-list before ‘pthread_t’
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

pmg*_*pmg 6

您需要#include <pthread.h>在头文件中,以便pthread_tmy_func()原型的范围内.

如果没有#include编译器不识别pthread_t为类型,但它在参数之前需要一个类型.

错误expected specifier-qualifier-list before ‘pthread_t’就是说.在参数('pthread_t')之前需要一个类型(specifier-qualifier-list).