[英]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.