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