enumjilu{aa,bb,cc}type;
上面這句話定義了一個名叫jilu的列舉型別,並且定義了該型別的一個變數type
要用語句給type賦值的話可以這樣寫:
DATAa;
intn;
scanf("%d",&n);
a.type=(enumjilu)n;//n不能大於2
這裡輸入0、1、2分別表示把a.type的值設為aa、bb、cc
你可以設計一個字元陣列來輸出,這樣可以看到自己的程式寫得對不對:
charstr[][3]={"aa","bb","cc"};
printf("%s",str[(int)a.type]);//或者printf("%s",str[n]);
如果想直接輸入aa、bb這樣的字串的話實在很麻煩……你還是輸入整數吧……
還有就是這個程式似乎需要在結構型別DATA定義前先單獨定義列舉型別jilu,不然有的編譯器通不過的。
我個人認為列舉是c語言中比較雞肋的一個數據型別……用起來很麻煩的。
enumjilu{aa,bb,cc}type;
上面這句話定義了一個名叫jilu的列舉型別,並且定義了該型別的一個變數type
要用語句給type賦值的話可以這樣寫:
DATAa;
intn;
scanf("%d",&n);
a.type=(enumjilu)n;//n不能大於2
這裡輸入0、1、2分別表示把a.type的值設為aa、bb、cc
你可以設計一個字元陣列來輸出,這樣可以看到自己的程式寫得對不對:
charstr[][3]={"aa","bb","cc"};
printf("%s",str[(int)a.type]);//或者printf("%s",str[n]);
如果想直接輸入aa、bb這樣的字串的話實在很麻煩……你還是輸入整數吧……
還有就是這個程式似乎需要在結構型別DATA定義前先單獨定義列舉型別jilu,不然有的編譯器通不過的。
我個人認為列舉是c語言中比較雞肋的一個數據型別……用起來很麻煩的。