#define typedef 枚举类型

typedef :typedef可以把一个类型重命名,可以使用typedef为一个已有的类型取一个新的名字,使用目的主要有两个:一、是给变量一个易记且意义明确的新名字,二、简化了一些比较复杂的类型名。使用typedef时要记住,typedef并没有创建任何新类型,它只是为某个已存在的类型增加一个方便使用的标签。

如: typedef int temp;  这行代码告诉编译器,给int类型重命名,下次申明int类型的时候就可以用temp了。

如: temp a = 23 

#define :#define是一个预处理指令,在编译之前发生,只是简单的字符串的替换,与typedef不同的是:一、typedef是在编译的时候发生的,且会进行类型检查。二、作用域不同,#define的作用域没有限制,而typedef有自己的作用域。三、(https://www.cnblogs.com/heyonggang/p/3199216.html

枚举类型:枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。当我们的变量有很多类型,但是如果一一列举出来,会使我们的代码冗杂且不好维护。这个时候我们便可以使用枚举。

1 enum 枚举名{ 
2      标识符[=整型常数], 
3      标识符[=整型常数], 
4 ... 
5     标识符[=整型常数]
6 } 枚举变量;
 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     enum sex1 {man,woman=5,no};
 6     int sex = 6;
 7     switch(sex) //根据sex的值判断
 8     {
 9         case man : cout << "This is man " << endl;
10             break;
11         case woman : cout << "This is woman 
";
12             break;
13         default :printf("i don`t konw this");
14             break;
15     }
16     return 0;
17 }

看上面这个例子,枚举sex1的值有三个,如果我们给他的三个值都没有赋整数常量的时候,他是默认从0开始。如果赋了整数常量后面的值则加1。所以输出应该是“i dont know this”。因为sex =6,no也等于6。当sex被赋值为0的时候,输出应该是“This is man”。

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     enum sex1 {man,woman=5,no};
 6     int sex = 0;
 7     switch(sex) //根据sex的值判断
 8     {
 9         case man : cout << "This is man " << endl;
10             break;
11         case woman : cout << "This is woman 
";
12             break;
13         default :printf("i don`t konw this");
14             break;
15     }
16     return 0;
17 }

 运行结果:This is man  

原文地址:https://www.cnblogs.com/xiaodangxiansheng/p/10879530.html