「#俺が見たクソコード選手権」というハッシュタグがTwitterにあったが、これまで見た中でどうしても納得できないというか、あまりにもわかりやすすぎて「どうしてこうなった?」的なコードがいくつかある。
とある会社で見たC言語のコードで
int i; for (i = 1; i <= 5; i++) { switch (i) { case 1: .... /* 1番目の処理 */ break; case 2: .... /* 2番目の処理 */ break; case 3: .... /* 3番目の処理 */ break; case 4: .... /* 4番目の処理 */ break; case 5: .... /* 5番目の処理 */ break; default: break; } }
1,2,3,4,5は実際にはそれぞれdefineでマクロ定義されていたけど、即値で書かれるよりも断然バグりそうで怖かった。