枚舉類型的使用分兩步:
1.定義一個特定的枚舉類型
2.定義該枚舉類型的變量并使用
以下學習內容均已經過實測:
1.定義枚舉類型的值只能是整型常量,正數、負數和零都可以,但不可以是浮點數
2.對枚舉類型做sizeof試驗:
(1)我在stm32單片機上試驗,也即ARM編譯器上,枚舉類型的存儲大小按定義的值里面需要占內存最大的給,即1、2、4、8都有可能,遵循夠用原則
(2)而在windows上試驗,即GNU GCC編譯器上,枚舉類型的存儲大小固定為4(但當定義中有超過4個字節(jié)大小的值時,存儲大小變?yōu)?)
(3)無論哪個編譯器,枚舉類型的值最長只能為8個字節(jié),更長的大小不接受
試驗參考代碼,可以自己改定義中的值大小去測結果:
enum DAY
{
MON = 0, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
int main()
{
printf("sizeof(day):%d\\r\\n", sizeof(day));
printf("sizeof(enum DAY):%d\\r\\n", sizeof(enum DAY));
getchar();
}
3.如何用extern修飾枚舉類型
(1)錯誤的修飾代碼,在類型的定義前加extern將起不到任何作用,因為extern是用來修飾變量的。以下代碼不會報錯,但會警告,extern出現(xiàn)在這里起不到任何作用
extern enum DAY
{
MON = 0, TUE, WED, THU, FRI, SAT, SUN
};
(2)正確的修飾代碼,在枚舉變量定義前加extern
extern enum DAY day;
-
ARM芯片
+關注
關注
1文章
125瀏覽量
21407 -
GNU
+關注
關注
0文章
143瀏覽量
17438 -
STM32單片機
+關注
關注
58文章
549瀏覽量
58567 -
gcc編譯器
+關注
關注
0文章
78瀏覽量
3338
發(fā)布評論請先 登錄
相關推薦
評論