专题一关键字的剖析----7.enum,typedef的分析

来源:互联网 发布:oracle数据库备份命令 编辑:程序博客网 时间:2024/06/13 07:46

Enum

enum是一种自定义类型;如果不指定初始值,默认从0开始,默认常量在前一个值的基础上依次加一;Enum类型的变量只能取定义时的离散值。

enum Color{    GREEN,//0    RED,//1    BLUE};enum  Color  c=Green;printf(“%d\n”,&c);    //error,枚举常量,没有分配空间


#define

#define宏常量只是简单地进行值替换,而枚举常量是真正意义上的常量

#define宏常量无法被调试(编译期已经不存在了),枚举常量可以(编译时列入符号表中)。

#define宏常量无类型信息,枚举常量是一种特定的常量。

 

typedef不是用于定义一种新的类型。Typedef用于给一个已经存在的数据类型重命名,它并没有产生新的类型,typedef重定义类型不能进行unsigned和siged扩展。

#define是简单的字符串替换,无别名的概念。

typedef char* PCHAR;PCHAR p1,p2;#define PCHAR  char*PCHAR p3,p4;//p4为char