2015-04-25 10 views
5

Ich versuche, eine Methode mit einem MUTEC aus diesem Artikel sperren here es heißt, eine Membervariable der Klasse erstellen als solcheImplizite Deklaration der Funktion ‚pthread_mutex_init‘ ist ungültig in C99

pthread_mutex_t mutex; 

Dann initialisieren es als so

pthread_mutex_init(&mutex, NULL); 

es dann als solche

void MyLockingFunction() 
{ 
    pthread_mutex_lock(&mutex); 
    // Do work. 
    pthread_mutex_unlock(&mutex); 
} 

verwende ich bin gett In Schritt 2 wird die folgende Warnung angezeigt, wenn ich sie initialisiere.

Implicit declaration of function 'pthread_mutex_init' is invalid in C99 

Was bedeutet das? Sollte ich es ignorieren?

Antwort

7

Es bedeutet, dass Sie die Header-Datei, die die Funktion deklariert, nicht enthalten haben, sodass der Compiler zu dem Zeitpunkt, an dem Sie ihn verwenden, nichts davon weiß. Sie versuchen, implizit zu deklarieren, indem Sie es verwenden, die ungültig ist.

Wenn Sie die man page for pthread_mutex_init() überprüfen, es sagt Ihnen, dass Sie die folgende Zeile, die Erklärung zu importieren verwenden sollte:

#include <pthread.h> 

Wenn Sie in der Nähe der Spitze Ihrer Quelldatei setzen, dass, geht die Warnung weg.

Verwandte Themen