对于学校,我必须编写一个议程,它必须保存有关考试、任务和讲座的数据
我在访问结构中的枚举时遇到问题。
我的结构如下所示:
struct Item{
enum {TASK, EXAM, LECTURE} entryType;
char* name;
char* course;
time_t start;
time_t end;
union
{
struct Task* task;
struct Exam* exam;
struct Lecture* lecture;
} typeData;
};
现在我必须使用我的枚举设置项目的类型。该结构在 Item.h 中定义。在包含 Item.h 的 Item.c 中,我使用以下代码:
struct Item* createItem(char* type){
struct Item* newItem;
newItem = (struct Item *) malloc (sizeof(struct Item));
if (strcmp(type, "Task") == 0)
{
//newItem->entryType = newItem->TASK;
newItem->typeData.task = createTask();
} else if (strcmp(type, "Exam") == 0)
{
//newItem->entryType = newItem->EXAM;
newItem->typeData.exam = createExam();
} else if (strcmp(type, "Lecture") == 0)
{
//newItem->entryType = newItem->LECTURE;
newItem->typeData.lecture = createLecture();
}
return newItem;
}
注释代码给了我错误(例如,对于 TASK):
错误 C2039:“任务”:不是“项目”的成员