簡體   English   中英

C中的枚舉類型變量聲明

[英]Enum type variable declarations in C

我在C中聲明了這個枚舉類型:

enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,
              JUL, AUG, SEP, OCT, NOV, DEC } ;

當我嘗試使用以下方法在main()創建類型為months的變量時:

months month;

它給出以下錯誤:

未知類型“月”

但是當我這樣聲明時:

enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,
              JUL, AUG, SEP, OCT, NOV, DEC } month;

工作正常。 我認為這兩種方法都是有效的,那么為什么會出現錯誤呢?

您需要在其周圍包裝一個typedef ,否則可以通過聲明它是一個enum來訪問它。

例:

typedef enum { JAN = 1, FEB, MAR, APR, MAY, JUN,
          JUL, AUG, SEP, OCT, NOV, DEC } months;
months month;

要么

enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,
          JUL, AUG, SEP, OCT, NOV, DEC };
enum months month;

代替

months month;

你必須寫

enum months month;

另一種方法是為枚舉定義一個typedef。 例如

typedef enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,
              JUL, AUG, SEP, OCT, NOV, DEC } months;

然后你可以寫

months month;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM