我尝试了一个示例程序来初始化如下的结构数组,并且出现错误。但是当我用一个变量初始化时,我没有得到任何东西。初始化一个结构数组
#include<stdio.h>
typedef struct s_{
int a;
int b;
}s;
typedef struct t_{
int c;
int d;
}t;
typedef struct st_{
s s1;
t t1;
}st;
#define ST_ALLOC {{20,20},{10,10}}
int main(){
st str[2] = ST_ALLOC;
//str[0] = ST_ALLOC;
//str[1] = ST_ALLOC;
printf("\n st.s1.a : %d st.t1.d : %d \n",str[1].s1.a,str[1].t1.d);
return 0;
}
错误:
a.c: In function ‘main’: a.c:22: error: expected expression before ‘{’ token a.c:23: error: expected expression before ‘{’ token
我不明白为什么会这样。
此代码为我编译。你确定这里的东西是你想要编译的吗? –
这段代码也是为我编译的。 – Ralph
检查出你的代码没有任何修改工作:http://ideone.com/VL9RJ0 – Jack