一直认为枚举是很鸡肋的东西,直到今天才知道原来它也很有用...
#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;
}
// 看来枚举的作用在于检查类型,使得程序更安全...
#include <cstdio>
enum open_mode {read,write,create};
enum aenum{zero};
void filefunction(open_mode mode)
{
}
int main()
{
// 看来枚举的作用在于检查类型,使得程序更安全...