enum和typedef分析

来源:互联网 发布:澳洲保健品 知乎 编辑:程序博客网 时间:2024/05/17 22:04
enum
是一种自定义类型,真真正正的常量
enum默认常量在前一个值的基础上依次加1
enum类型的变量只能取定义时的离散值,只能是int型
enum类型变量只能取值为花括号内的任何一个值
enum color
{
   GREEN,
   RED = 2,
   BLUE
};
enum变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,它们的值从0开始依次递增1。所以GREEN=0,BLUE=3。

枚举类型和#define区别
#define宏常量只是在预编译阶段简单的进行值替换,枚举常量是在编译的时候确定其值,是真真意义上的常量
#define宏常量无法被调试,枚举常量可以
#define宏常量无类型信息,枚举常量是一种特定类型的常量

typedef
用于给一个已经存在的数据类型重命名
并没有产生新的类型
typedef重定义的类型不能进行unsigned和signed扩展
typedef不能和static等存储类型指示符同时使用,因为每个变量只能有一种存储类型,所以代码:typedef static int i;是非法的。

typedef和#define区别
typedef是给已有类型取别名
#define为简单的字符串替换,无别名概念
  typedef char* PCHAR;
  PCHAR p1,p2;                    -->char* p1;char* p2;

  #define PCHAR char*
  PCHAR p1,p2;     -->char* p1,p2;    -->char* p1;char p2;
原创粉丝点击