2012-12-05 80 views
2

我試圖做一個struct聲明static(所以它只能在文件中使用):靜態結構聲明用C

static typedef struct 
{ 
    int foo; 
} MyStruct; 

static MyStruct[5]; 

(這是test_struct.c) 當我編的東西,我得到這個錯誤:

test_struct.c:12: multiple storage classes in declaration of `MyStruct' 

如果我typedef struct ...之前刪除static我算了一下,它會工作,但我應該怎麼做,如果我真的想使結構聲明靜態的?

感謝

回答

3

可以變量聲明爲靜態

static MyStruct ms[5]; 

我通常不喜歡這樣,

typedef struct{ 
    int foo; 
} MyStruct; 

static MyStruct myStruct[5]; 
+0

你肯定第一個部分?有一個參考呢? –

+0

http://ideone.com/Xx9VLJ –

+0

@LuchianGrigore謝謝。但它的有線爲什麼編譯。 –