首页 > 解决方案 > 枚举 C 中的“未知类型名称”

问题描述

它说未知类型名称“周”。第三行显示错误。

这是我的代码:

#include <stdio.h>

enum week{ sunday, monday, tuesday, wednesday, thursday, friday, saturday };


void lecture_unit(week day)
{
    if (day == friday) printf("COS10008\n");
    if (day == monday) printf("Maths\n");
    if (day == sunday) printf("Holiday\n");
}

int main()
{
    week today;
    today = sunday;
    lecture_unit(today);
    printf("Day %d\n",today);
    return 0;
}

标签: c

解决方案


正确的类型名称应该enum week不仅仅是week

#include <stdio.h>

enum week{ sunday, monday, tuesday, wednesday, thursday, friday, saturday };


void lecture_unit(enum week day)
{
    if (day == friday) printf("COS10008\n");
    if (day == monday) printf("Maths\n");
    if (day == sunday) printf("Holiday\n");
}
int main()
{
    enum week today;
    today = sunday;
    lecture_unit(today);
    printf("Day %d\n",today);
    return 0;
}

如果您更喜欢使用week,则可以使用typedef将类型定义enum weekweek

#include <stdio.h>

enum week{ sunday, monday, tuesday, wednesday, thursday, friday, saturday };
typedef enum week week;

void lecture_unit(week day)
{
    if (day == friday) printf("COS10008\n");
    if (day == monday) printf("Maths\n");
    if (day == sunday) printf("Holiday\n");
}
int main()
{
    week today;
    today = sunday;
    lecture_unit(today);
    printf("Day %d\n",today);
    return 0;
}


推荐阅读