#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. 以后每个枚举都递增。