- 49 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 04:34:50.74 ID:16ZpsTnK0.net]
- >>46
いやこれはさすがにアウトだろ。 実際部下にこのコード出されたら絶句するだろ。 178行目と194行目のヌルチェックなんてダブってるし、マジで意味無い。 頭が悪い奴が一生懸命書いたコードだぞこれは。手本にするには酷すぎる。 delete関数は筆者には難しすぎて、異常系を一つずつ外して行ってるから無駄にダブってる。 だけどこの規模でこれだと絶望的だろ。 マジでこの本は捨てた方がいい。 18が読めないのは18の技量の問題だけど、 読みやすいコードと読みにくいコードというのは実際にあって、 要するに腕前がいい奴が書いたコードは一般的に読みやすく、下手くそが書いたコードは読みにくい。 (勿論高速化等かけた場合は若干読みにくくなるが) 頭が悪いのなら、関数を分けて分割すべきであって、 breakして下に無理矢理繋げているから意味不明なコードになる。 なお高速コードは以下。 int delete(int no, tag_address** ptr_head) { tag_address** ptr_tgt = ptr_head; tag_address* ptr_now = *ptr_head; while(ptr_now != NULL && no >= ptr_now->no) { ptr_tgt = &ptr_now->next; ptr_now = ptr_now->next; } if (ptr_now != NULL && no == ptr_now->no) { *ptr_tgt = ptr_now->next; free(ptr_now); return 0; } else return -1; }
|

|