이 내 코드 (C 오류) 상수 값이 있어야합니다식
int main (void) {
struct state
{
int output;
int time;
const struct state *next[4];
};
typedef const struct state state_t;
# define wait1noclick &fsm[0]
# define fast2 &fsm[1]
# define wait2noclick &fsm[2]
# define fast1 &fsm[3]
# define wait1click &fsm[4]
# define wait1 &fsm[5]
# define wait2click &fsm[6]
# define wait2 &fsm[7]
state_t fsm[8] =
{
{0xC, 600, {wait1noclick, fast2, wait1click, fast2}},
{0x1, 150, {fast2, wait2noclick, fast2, wait2noclick}},
{0x3, 600, {wait2noclick, fast1, wait2click, fast1}},
{0x4, 150, {fast1, wait1noclick, fast1, wait1noclick}},
{0x8, 200, {wait1click, wait1, wait1click, wait1}},
{0x5, 200, {wait1, fast2, wait1, fast2}},
{0x2, 200, {wait2click, wait2, wait2click, wait2}},
{0xA, 200, {wait2, fast1, wait2, fast1}}
};
}
문제없이 컴파일 suposed되어 있지만 각 "FSM에서이 오류 메시지가 모든 시간, 4 시간을 얻고있다 "행 :
error: #28: expression must have a constant value
내가 뭘 잘못하고 있는지 알아?
주소가 일정해야하므로 '메인'외부에서해야합니다. 정적 저장소 클래스가 있어야합니다. 'main' 내부에 타입을 정의하는 것은 그 자체로 나쁜 생각입니다. –
은'main' 함수 밖에서 잘 작동합니다. –
고마워요! 그것으로 문제가 해결됩니다. 원한다면 의견 대신 답변을 게시하여 승인 된 답변으로 표시 할 수 있습니다. – Sergio