我有这个简单的代码:

#include <stdio.h>
#include <time.h>

int main(){
    enum Days { asd=0,Lun,Mar,Mer,Gio,Ven,Sab,Dom };
    Days TheDay;
    time_t ltime;
    struct tm *Tm;

    ltime=time(NULL);
    Tm=localtime(&ltime);
    int j = Tm->tm_wday;
    TheDay = Days(j);

    printf("[%d] %d/%d/%d, %d:%d:%d\n",
            TheDay, /* Mon - Sun */
            Tm->tm_mday,
            Tm->tm_mon,
            Tm->tm_year+1900,
            Tm->tm_hour,
            Tm->tm_min,
            Tm->tm_sec);
}

我不明白为什么会收到此错误:

最佳答案

这不是C:

enum Days { asd=0,Lun,Mar,Mer,Gio,Ven,Sab,Dom };
Days TheDay;

新类型的名称是enum Days而不是Days(这是枚举标记)。

您必须使用:
enum Days { asd=0,Lun,Mar,Mer,Gio,Ven,Sab,Dom };
enum Days TheDay;

或使用typedef:
typedef enum Days Days;

才能将Days用作类型名称。

关于c - 枚举: unknown type name,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11436063/

10-13 08:45