e4185.c

実行されない初期化

/* 警告  B:e4185: 制御が渡らないコードに動的な初期化処理があります */

switch(x) { int flg = 0; /* この初期化は実行されない */ case 1: flg = 1; /* fall through */ case 2: puts("abc"); if(flg) /* ←xが2の時flgは不定!! */ { puts("def"); } break; }
解説 指摘した初期化処理が実行される事はありません。 switch文の最初のケースの前やreturnの後等、実行されないコードで初期化付きの変数宣言があった場合に警告します。