Ios 函数的隐式声明';pthread_mutex_init';在C99中无效

Ios 函数的隐式声明';pthread_mutex_init';在C99中无效,ios,objective-c,multithreading,Ios,Objective C,Multithreading,我试图用本文中的mutec锁定一个方法,它声明创建类的成员变量 pthread_mutex_t mutex; 然后初始化它 pthread_mutex_init(&mutex, NULL); void MyLockingFunction() { pthread_mutex_lock(&mutex); // Do work. pthread_mutex_unlock(&mutex); } 那么就这样使用它吧 pthread_mutex_in

我试图用本文中的mutec锁定一个方法,它声明创建类的成员变量

pthread_mutex_t mutex;
然后初始化它

 pthread_mutex_init(&mutex, NULL);
void MyLockingFunction()
{
    pthread_mutex_lock(&mutex);
    // Do work.
    pthread_mutex_unlock(&mutex);
}
那么就这样使用它吧

 pthread_mutex_init(&mutex, NULL);
void MyLockingFunction()
{
    pthread_mutex_lock(&mutex);
    // Do work.
    pthread_mutex_unlock(&mutex);
}
当我初始化它时,我在步骤2得到以下警告

Implicit declaration of function 'pthread_mutex_init' is invalid in C99

这是什么意思?我应该忽略它吗?

这意味着您没有包含声明函数的头文件,因此编译器在您使用它时对它一无所知。您试图通过使用它来隐式声明它,这是无效的

如果选中,它会告诉您应该使用以下行导入声明:

#include <pthread.h>
#包括
如果将其放在源文件顶部附近,警告将消失