枚举

#include <iostream>

using namespace std;

//IPTYPE是一种数据类型,他的值只能是枚举值TYPE_IPV4, TYPE_IPV6 这些宏!

enum IPTYPE
{
    TYPE_IPV4   = 0,
    TYPE_IPV6

};

int main(){
    //IPTYPE 是枚举变量的类型。 iptype是枚举变量。该枚举变量只能取值为TYPE_IPV6 TYPE_IPV4
    IPTYPE iptype = TYPE_IPV6;
    if (iptype == TYPE_IPV6){
        cout << "iptype is ipv6." << endl;
    }

    //iptype = 100; //error C2440: '=' : cannot convert from 'int' to 'IPTYPE' 但是iptye = (IPTYPE)100就可以正常执行。

 

    //枚举值可以直接当宏使用,可以赋值给其他变量。
    int i = TYPE_IPV6;
    cout << i << endl;
    system("pause");
}

 

PS: C++ 同样要求先声明,再使用。 其中IPTYPE不能放到main函数的后面

 

 

==============================================================================

#include <iostream>
using namespace std;

enum IPTYPE
{
    ipv4 = 0,
    ipv6 = 1
};

typedef enum WEEKDAY {
    sunday = 0,
    monday = 1,
    tuesday = 2,
    wesday = 3
} WEEKDAY;

int main()
{
    IPTYPE it = (IPTYPE)1;
    cout << it << endl;

    IPTYPE it1 = ipv4;
    cout << it1 << endl;

    IPTYPE it2 = (IPTYPE)3;
    cout << it2 << endl;

    int i = (int)it2;
    cout << i << endl;

    cout << sunday << endl;

    WEEKDAY is = wesday;
    cout << is << endl;
    system("pause");
}

 

===========================================================================

结构体的声明是需要带分号的。 

其中的每个变量以逗号分隔, 最后一个逗号可以省略。 

类型 {枚举值, 枚举值2, 枚举值3};

enum Num
{
    x1 = -1,
    x2 = 0,
    x3 = 1
} x;

等价于

enum Num
{
    x1 = -1,
    x2 = 0,
    x3 = 1
} ;

enum Num x;

https://baike.baidu.com/item/%E6%9E%9A%E4%B8%BE/2101055?fr=aladdin

如果枚举只需要使用一次, 可以

enum 
{
    x1 = -1,
    x2 = 0,
    x3 = 1
}  x;

如果不指定枚举值,采用以下默认的规则:

1. 第一个枚举从零开始。 

2. 以后每个枚举都递增。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值