为什么使用枚举

一直认为枚举是很鸡肋的东西,直到今天才知道原来它也很有用...

#include <cstdio>

enum open_mode {read,write,create};
enum aenum{zero};

void filefunction(open_mode mode)
{
    switch(mode){
      case read:
         printf("read only\n");
         break;
      case write:
         printf("write only\n");
         break;
      case create:
         printf("create it\n");
         break;
      default:
         printf("fuck error\n");
         break;
    }
}

int main()
{
    int aint=4;
   //filefunction(aint);  //引发编译时错误:enum.cxx:25:21: error: invalid conversion from 'int' to'open_mode'
    open_modemymode = read;
   filefunction(mymode);
    open_modeyourmode = create;
   filefunction(yourmode);
    
   //初始化时,使用整型,将产生编译时错误:
    //open_modemode = aint;
    
    open_modeonemode = read;
    aenum avalue= zero;
   //强制转换类型,是可以进行赋值的,但是编译器不保证运行时的正确性(废话)...
    onemode =(open_mode)zero;
    
    open_modelastmode = (open_mode)aint;
   filefunction(lastmode);
    return0;
    }
// 看来枚举的作用在于检查类型,使得程序更安全...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值