[[
enumを活用する
]]
Mice Wiki
現在位置:
IndexPage
»
enumを活用する
文書の表示
以前のリビジョン
最近の変更
索引
ログイン
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
======enumを活用する====== =====enumとは===== enumは、列挙型という型を作ります。 記法としては、 <code c> typedef enum{ rekkyo_1, rekkyo_2, rekkyo_3, }t_rekkyo; //型を作る t_rekkyo r1,r2; //t_rekkyo 形のr1 r2 という変数を作る </code> という感じで、列挙型の型の宣言と、変数の宣言ができます。 また、列挙されたメンバーに数字を当てはめておく事もできます。 <code c> typedef enum{ false = 0, true = 1, }t_boolean; t_boolean flag1, flag2; </code> こんな感じです。 当然、上のt_boolean 型の変数flag1, flag2が宣言された状態で <code c> flag1 = true; flag2 = flag1; </code> とすれば、flag2にはtrueが入ります。 内部的には数字なので当然、 <code c> if(flag1){ //flag1が立っていた時の処理 }else{ //flag1が立っていなかった時の処理 } </code> という書き方ができます。 ただし、読みやすいように <code c> if(flag1 == true){ }else{ } </code> と書いた方が良いでしょう。 =====使い道===== true,falseをメンバーにしてフラグ用に使うのが、一番多いと思いますが、本来の使い方ではありません。 例えばマイクロマウスで、今の状態を示す変数をつくろうと思った時に、 <code c> int state = 0; /* 0 : 人の手で操作中(メニュー) 1 : 探索中 2 : 最短走行中 3 : クラッシュ */ </code> なんて風にやっていた所を、 <code c> typedef enum{ menu, //メニュー操作 search, //探索 fast_run, //最短走行 crash, //ぶつかった }t_machine_state; t_machine_state state; </code> みたいに書く事ができます。 見やすいプログラムにすることでバグの発生を抑えるのが、enumの正しい使い方です。 menuの項目なんかも、列挙型で管理するとやりやすいと思います。 分かっているとは思いますが、 <code c> switch(state){ case menu: //・・・・ break; case search: //・・・・ break; case fast_run: //・・・・ break; case crash: //・・・・ break; } </code> みたいなのも普通にできます。
/home/users/2/deca.jp-mice/web/cgi/dokuwiki/data/pages/enumを活用する.txt · 最終更新: 2010/09/12 23:34 by member
文書の表示
以前のリビジョン
文書の先頭へ