引数が 26 個の関数呼び出しってどうよ
数ヶ月前に書いたコードを保守しようとしたら、 こんなのが出てきてウケた。
unsigned hits[24]; ... if (sscanf(buf, "%u,%u,%u,%u,%u," "%u,%u,%u,%u,%u," "%u,%u,%u,%u,%u," "%u,%u,%u,%u,%u," "%u,%u,%u,%u", hits + 0, hits + 1, hits + 2, hits + 3, hits + 4, hits + 5, hits + 6, hits + 7, hits + 8, hits + 9, hits + 10, hits + 11, hits + 12, hits + 13, hits + 14, hits + 15, hits + 16, hits + 17, hits + 18, hits + 19, hits + 20, hits + 21, hits + 22, hits + 23) != 24) { return -1; } ...
24時間分のカンマ区切りの文字列を unsigned [24] にロードする。
1日が25時間になることなんてないし、このコードは読みやすくてメンテナンス性は高いと思うんだけど、なんか常識に挑戦してる気がする。
もっといいやり方あるのかな。