2013-01-09 62 views
3

我只是有一個關於書「UNIX網絡編程」(第2節,pg162) 這是這個定義一個結構的問題:一個結構在C定義

struct { 
    pthread_mutex_t mutex 
    int buff[MAXNITEMS]; 
    int nput; 
    int nval; 
} shared= { 
    PTHREAD_MUTEX_INTIALIZER 
}; 

我無法理解代碼共享後。這是什麼意思? 在此先感謝

回答

7

代碼struct { ... } shared = { PTHREAD_MUTEX_INITIALIZER }定義結構類型前述結構類型的類型的變量shared。部分= { PTHREAD_MUTEX_INITIALIZER }然後初始化這個變量,其第一個組成部分是PTHREAD_MUTEX_INITIALIZER,其餘的爲零。

+0

附加細節:變量「shared」的第一個成員變量「mutex」正在被初始化爲PTHREAD_MUTEX_INITIALIZER。其餘的變量(即數組buff [MAXNITEMS],輸入,nval中的每個單獨元素)都被初始化爲零。 – Kash