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

时间:2009-11-08 23:45:18

标签: c multithreading pthreads

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

void my_func(pthread_t tid);

这由另一个函数定义:

void my_func(pthread_t tid) {
...

当我编译时,它说:

****.h:2: error: expected specifier-qualifier-list before ‘pthread_t’

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:6)

您需要在标头文件中#include <pthread.h>,以便pthread_t适用于my_func()原型。

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

错误expected specifier-qualifier-list before ‘pthread_t’正是这样说的。在参数('pthread_t')之前需要一个类型(specifier-qualifier-list)。