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;
}