6

私はこの簡単なコードを持っています:

#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);
}

このエラーが発生する理由がわかりません:

try.c:6:5: エラー: 不明なタイプ名 'Days'</p>

4

1 に答える 1

22

これは C ではありません:

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

新しい型の名前は is enum Daysand not Days(enum タグ) です。

以下を使用する必要があります。

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

または typedef を使用します。

typedef enum Days Days;

Days型名として使用できるようにします。

于 2012-07-11T15:27:37.513 に答える