Enum
enum是一种自定义类型;如果不指定初始值,默认从0开始,默认常量在前一个值的基础上依次加一;Enum类型的变量只能取定义时的离散值。
enum Color
{
GREEN, //0
RED, //1
BLUE
};
enum Color c=Green;
printf(“%d\n”,&c); //error,枚举常量,没有分配空间
#define宏常量只是简单地进行值替换,而枚举常量是真正意义上的常量
#define宏常量无法被调试(编译期已经不存在了),枚举常量可以(编译时列入符号表中)。
#define宏常量无类型信息,枚举常量是一种特定的常量。
typedef不是用于定义一种新的类型。Typedef用于给一个已经存在的数据类型重命名,它并没有产生新的类型,typedef重定义类型不能进行unsigned和siged扩展。
#define是简单的字符串替换,无别名的概念。
typedef char* PCHAR;
PCHAR p1,p2;
#define PCHAR char*
PCHAR p3,p4; //p4为char