1. 程式人生 > >為什麼使用列舉

為什麼使用列舉

一直認為列舉是很雞肋的東西,直到今天才知道原來它也很有用...

#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;
    }
// 看來列舉的作用在於檢查型別,使得程式更安全...