2015-04-25 30 views
5

Ben Sonra böyleÖrtülü beyanı C99

pthread_mutex_t mutex; 

olarak sınıfın üyesi değişken oluşturmak olarak başlatmak bildiren bu makalede here bir Mutec bir yöntem kilitlemek çalışıyorum geçersizdir böyle

pthread_mutex_init(&mutex, NULL); 

Sonra Gett duyuyorum böyle

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

olarak kullanmak başlattığım zaman 2. adımda aşağıdaki uyarıyı dinliyorum.

Implicit declaration of function 'pthread_mutex_init' is invalid in C99 

Bu ne anlama geliyor? Bunu görmezden mi gelmeliyim?

cevap

7

Bu, işlevi bildiren başlık dosyasını dahil etmediğiniz anlamına gelir; böylece derleyici, kullandığınız noktada bu konuda hiçbir şey bilmiyordur. örtüsüyle örtülü olarak'u kullanmaya çalıştığınız için geçersizdir. Eğer man page for pthread_mutex_init() işaretlerseniz

, bu beyanı içe aşağıdaki satırı kullanması gerektiğini söyler: Eğer kaynak dosyasının üstüne yakın, uyarı gideceğini koyarsanız

#include <pthread.h> 

.