2012-08-15 28 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} };