Skip to content

Latest commit

 

History

History
49 lines (41 loc) · 1.39 KB

5.md

File metadata and controls

49 lines (41 loc) · 1.39 KB

enum和typedef分析

1、枚举类型的使用方法

  • enum是一种自定义类型,默认的第一个值为0;
  • enum默认常量在前一个值的基础上依次加1;
  • enum类型的变量只能取定义时的离散值。
enum Color
{
    GREEN,
    RED = 2,
    BLUE
};
int main()
{
    printf("%d\n", GREEN);  // 0
    printf("%d\n", RED);    // 2
    printf("%d\n", BLUE);   // 3
    return 0;
}

2、枚举类型和#define的区别

  • #define宏常量只是简单的进行值/字符串替换,枚举常量是真正意义上的常量;
  • #define宏常量无法被调试(已经被替换为常量/字符串),枚举常量可以;
  • #define宏常量无类型信息,枚举常量是一种特定类型的常量。

3、typedef分析(重命名操作)

  • typedef用于给一个已经存在的数据类型重命名;
  • typedef并没有产生新的类型;
  • typedef重定义的类型不能进行unsigned和signed扩展。

4、typedef和#define的区别

  • typedef是给已有类型取别名;
  • #define为简单的字符串替换,无别名的概念。
typedef char* PCHAR; //这里PCHAR为char*的别名,为一个整体
PCHAR p1,p2; 

p1,p2都为指针地址

#define PCHAR char*   //这里表示有PCHAR的地方用char*代替
PCHAR  p3, p4;        //这里替换后为 char* p3, p4也可以表示为char (*p3), p4;

p3为指针地址,p4为char类型