2012-08-15 27 views
-1

結構我有一個問題,我要替內聲明結構數組,一個結構像這樣:陣列爲PowerPC編譯

typedef struct { 
int a; 
int b; 
int c; 
}blah; 

int main() 
{ 
    blah arr[1] = {{0, 0, 0}}; 
//... 
} 

是上面的初始化是否正確?

+1

是的。更多人物,所以這將張貼。 – tbert 2012-08-15 14:24:39

+0

你在編譯器中試過嗎? – huon 2012-08-15 14:28:02

+0

@dbaupp,是的,編譯器告訴我有太多初始值設定項。編譯器是用於PowerPC ... – xBACP 2012-08-15 14:36:07

回答

0

是的。

你並不需要,如果你將有一個明確的初始化,讓編譯器算起來指定大小:我還包含空格

blah arr[] = { { 0, 0, 0 } }; 

使嵌套了一下清晰。

+0

我指定數組中結構的數量的方式不應該是一個問題,思路是否正確? – xBACP 2012-08-15 14:27:55

+0

確實認爲它可能是一個編譯器問題,此代碼正在編譯爲PowerPC ... – xBACP 2012-08-15 14:32:07

1

是的,這是完全正確的。

長度爲1的數組與含有多個元素的數組沒有多大區別:它們都是聚合類型,它們的初始化應該用大括號括起來。如果你的陣列有2個元素,初始化就像

blah arr[2] = { {0, 0, 0}, {0, 0, 0} };