e149.c

enum を使った switch 文


コード例: /* enum の ESwitch 型を宣言 */ typedef enum { ES_A = 10, ES_B = 20, ES_C = 30 } ESwitch ; extern ESwitch func(void) ; int main(void) { ESwitch es = func() ; switch( es ) { case ES_A : /* process A */ break ; case ES_B : /* process B */ break ; /* * 100 は ESwitch 型が表現できない値であるため、 * 実行されない可能性があります */ case 100 : /* process 100 */ break ; default : /* process default */ break ; } return es ; }
解説: switch 文の条件式として指定された enum 変数が case の値を表現できない場合に警告します。 今のままではデッドコード(実行されないコード)ですので、 適切な修正を望みます。