枚举知识点(enum)

本文讨论了C++中枚举的定义方式,强调了枚举与预处理宏的区别,包括类型安全性、可读性、维护性以及枚举在防止命名污染和调试中的优势。
摘要由CSDN通过智能技术生成

枚举定义

/*
    把可能的取值一一列举出来,例如一周
    相当于定义了一种类型,该类型只有例举的这几个值
*/
//enum day
//{
//    //这些可能取值都是有值的,默认从0开始,依次递增1,当然在定义的时候也可以赋初值。
//    Mon,//0
//    Tues,//1
//    Wed,//2
//    Thur,//3
//    Fri,//4
//    Sat,//5
//    Sun//6
//};

预处理和枚举的区别

enum day
{
    Mon=1,//1
    Tues,//2
    Wed,//3
    Thur,//4
    Fri,//5
    Sat,//6
    Sun//7
};
#define M 10
int main()
{
    /*
        d是enum day类型的,所以d只能赋值Mon到Sun,无法赋其他值
        在c++中  enum day d = 5;是错误的,错误信息为:无法从int转为enum day(类型转换)
    */
    enum day d = Fri;
    d = 8;
    int c = M;
    /*
        test.c -----(预处理)------->编译------------->链接---------->.exe  调试
        在预处理截断M直接替换成10,而Fri不替换,因为他是一个类型,所以调试时是由区别的
    */
    printf("%d\n", Mon);
    printf("%d\n", Tues);
    printf("%d\n", Wed);
    printf("%d\n", Thur);
    printf("%d\n", Fri);
    printf("%d\n", Sat);
    printf("%d\n", Sun);
    printf("%d\n", d);
    return 0;
}

 枚举的优点

/*
    枚举的优点
    1. 增加代码的可读性和可维护性
    2. 和#define定义的标识符比较枚举有类型检查,更加严谨。
    3. 防止了命名污染(封装)
    4. 便于调试
    5. 使用方便,一次可以定义多个常量
*/

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值