2014-02-28 193 views
1

这里的是结构体:阵列结构

typedef struct state_machine{ 
char name; 
struct state_machine *next0; 
struct state_machine *next1; 
}state; 

和这里的我试图创建它们的阵列

state[] states = { 
     {'A', state+3, state+4}, 
     {'B', state, state+5}, 
     {'C', state+4, state }, 
     {'D', state+5, state+6}, 
     {'E', state+1, state+7}, 
     {'F', state+7, state+3}, 
     {'G', state+2, state+6}, 
     {'F', state+6, state+1}}; 

编译器捕捉上第一行中的错误,“状态[]状态= { “

预期标识符或 '(' 前 '[' 令牌

回答

5

更改为:

state states[] = { 
     {'A', states+3, states+4}, //You probably meant states, since state is a type 
     {'B', states, states+5}, 
     {'C', states+4, states }, 
     {'D', states+5, states+6}, 
     {'E', states+1, states+7}, 
     {'F', states+7, states+3}, 
     {'G', states+2, states+6}, 
     {'F', states+6, states+1}}; 

C,所述[]应变量名后,类型后不。

+0

错误:在'state'之前的预期表达式 当我这样做时 –

+1

@ user3365695:阅读答案。你很可能忘了改变'state + 4'到'states + 4'。 –

+0

:falmpalm:不敢相信我没有看到 –