[英]Use of enums in c
我有這個枚舉:
enum Seasons{
winter,spring,summer,autumn
};
該代碼將做什么?
enum Seasons curr_season;
curr_season = autumn;
curr_season = 19;
謝謝!
enum Seasons{
winter,spring,summer,autumn
};
上面創建了以下內容
winter=0, spring=1, summer=2 and autumn=3
注意: enums
只是整數! ..也可以取負數!
enum Seasons curr_season;
curr_season = autumn;
/* curr_season will now have 3 assigned */
curr_season = 19;
/* curr_season will now have 19 assigned */
您可以運行以下代碼進行檢查!
#include <stdio.h>
enum Seasons{
winter,spring,summer,autumn
};
void print_seanons(void)
{
printf("winter = %d \n", winter);
printf("spring = %d \n", spring);
printf("summer = %d \n", summer);
printf("autumn = %d \n", autumn);
return;
}
int main(void)
{
enum Seasons curr_season;
print_seanons();
curr_season = autumn;
printf("curr_season = %d \n", curr_season);
curr_season = 19;
printf("curr_season = %d \n", curr_season);
return 0;
}
枚舉常量在c中的類型為int
。 盡管enum
並非顯式為int
類型,但枚舉類型和int
之間的轉換是靜默的。 通常沒有對枚舉的約束檢查,因此您的代碼在功能上等效於:
int curr_season;
curr_season = 3;
curr_season = 19;
枚舉是整數值,因此它將為curr_season
分配值19。
交叉使用(將整數值分配給枚舉)被認為是不良的編程習慣,應避免使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.