[질문] 헤더파일에 구조체 정의시 에러 발생 도와주세요~

gstd의 이미지

안녕하세요~
허접한 프로그래밍 중에 에러가 발생해서 도움을 구하고자 질문을 올립니다~

typedef unsigned char TaskId;
typedef unsigned char Priority;

enum TaskState { Ready, Running, Waiting };

struct Task
{
TaskId id;
Priority priority;
TaskState state; <- 이 라인이 에러
Context context;
int * pStack;
Task * pNext;
void (*entryPoint)();
static TaskId nextId;
};

이와 같이 헤더파일에 구조체를 정의하니까

pasrse error before "TaskState"
warning: no semicolon at end of struct or union

라는 에러메세지가 나오는데 제가볼때 문법적으로 오류가 없다고 생각하는데 어디서 잘못된건가요??
아무래도 열거체가 좀 이상한거 같기두 하구여;;
몇시간째 헤메고 있습니다~ 도와주세요~

익명 사용자의 이미지

enum의 사용법이 문제인게 맞습니다. 귀찮으시더라도 책 꺼내서 개념과 문법 다시 확인하시는게 좋을 듯 합니다.

jick의 이미지

에러가 난 라인을

<span>enum</span> TaskState state;

이렇게 바꿔주세요. C에서 struct, union, enum은 namespace를 따로 씁니다.
아니면 처음에 정의하는 라인을

typedef enum { Ready, Running, Waiting } TaskState;

이렇게 바꾸는 방법도 있습니다.

gstd의 이미지

아 그렇군요~ 감사합니다~ ^_^