enum,typedef分析

关键字的秘密

专题一:关键字的秘密。包括以下章节:

  • 基本数据类型分析
  • auto,register,static分析
  • if,switch,do,while,for分析
  • goto,void,extern,sizeof分析
  • const,volatile分析
  • struct,union分析
  • enum,typedef分析

枚举类型使用方法

  • enum是一种自定义类型(struct、union都是自定义类型)
  • enum默认第一个值为0,下一个值依次加1
  • enmu类型的变量只能取定义时的离散值(int型)
#include<stdio.h>

enum Color
{
    GREEN,
    BLUE = 2,
    RED
};

int main()
{
    //printf("%d\n", &GREEN);编译报错,enum时真正意义上的常量,不能取地址。0不能取地址
    printf("%d\n", GREEN);
    printf("%d\n", BLUE);
    printf("%d\n", RED);

    return 0;
}

结果:
这里写图片描述

枚举类型和define区别

  • #define宏常量只是简单的值替换,枚举常量是真正意义上的常量
  • #define宏常量无法被调试,枚举常量可以
  • #define宏常量无类型信息,枚举常量是一种特定类型的常量

typedef

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

typedef和#define区别

#include<stdio.h>

typedef char* PCHAR;
#define DCHAR char*

int main()
{

    char c;

    PCHAR p1, p2;// 等价于(char*) p1, p2;
    p1 = &c;
    p2 = &c;

    DCHAR d1, d2;//等价于char* p1,p2;p1是指针char*,p2是char类型
    d1 = &c;
    d2 = &c;

    return 0;
}

打印结果:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值