enum
枚举类型的使用方法
- enum是一种自定义类型
- enum定义的常量 首项为0;默认常量在前一个值的基础上依次加1
- enum类型的变量只能取定义时的离散值
enum Color
{
GREEN,
BLUE = 2,
RED
};
printf("%d,%d,%d\n",GREEM,BLUE,RED); //0,2,3
#define宏常量与enum的区别
- #define只是进行简单的值替换,枚举常量是真正意义上的常量
#include<stdio.h>
#define MAX 255
int main()
{
int a[MAX];
int i = MAX;
return 0;
}
有宏常量的话,其实就是编译时,先变成
#include<stdio.h>
int main()
{
int a[255];
int i = 255;
return 0;
}
再进行的编译,不算是常量
- #define宏常量无法被调试,枚举常量可以
- #define宏常量无类型信息,枚举常量是一种特定类型的常量
typedef的意义
- typedef用于给一个已经存在的数据类型重命名
- typedef并没有产生新的类型
- typedef重定义的类型不能进行unsigned和signed扩展
typedef和#define的区别
- typedef是给已有类型取别名
- #define为简单的字符串替换
#define DCHAR CHAR*
typedef char* PCHAR;
int main()
{
DCHAR P1,P2; //P1是指针char*,P2是字符char
PCHAR P3,P4; //P3 P4都是char*
}
reason:
DCHAR P1,P2;
//会替换成char*
//而char* P1,P2; 只有P1是指针
PCHAR P3,P4;
//P3 P4都是PCHAR类型的
//PCHAR是char*的别名