1.常量符号化
- 用符号而不是具體的數字來表示程式中的數字
2.枚舉
- 用枚舉而不是定義獨立的const int變量
- 是一種使用者定義的資料類型,用關鍵字enum以下文法來說明:
- enum 枚舉類型名字{名字0,名字1…名字n}
- 枚舉類型名字通常并不真的使用,要用的是大括号裡的名字,因為他們就是常量符号,他們的類型是int,值則依次從0~n,如:
- enum colors{red,yellow,green}
#include <stdio.h>
enum color{red,yellow,green};
int main(void)
{
printf("red=%d\n",red);
printf("yellow=%d\n",yellow);
printf("green=%d\n",green);
return 0;
}
- 枚舉量可作為值
- 枚舉類型可以跟上enum作為類型
- 但是實際上以整數來做内部計算和外部輸入輸出的
- 小套路:自動計數的枚舉
- 聲明枚舉變量是可以指定值
- 枚舉隻是int,用于有意義的排比名字,用枚舉比const int友善
- 枚舉比宏(macro)好,因為枚舉有int類型
#include <stdio.h>
//NumCOLORS很重要,它的下标+1即為個數
enum COLOR{RED,YELLOW,GREEN,NumCOLORS};
int main(void)
{
int color=-1;
char *ColorName[NumCOLORS]={
"red","yellow","green",
};
char *colorName=NULL;
printf("輸入你喜歡的顔色代碼:");
scanf("%d",&color);
if(color>=0&&color<NumCOLORS){
colorName=ColorName[color];
}
else{
colorName="unknown";
}
printf("你喜歡的顔色是%s\n",colorName);
return 0;
}