パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

GitHubで最も「醜いハック」が使われているのはC言語」記事へのコメント

  • はい、クラス/構造体に入れるの面倒でグローバル転がしてテストしてそのまま
    なんてのはよくやっちゃいます。
    あとはデバッガで追いやすいようにローカルに使われるものを広域変数にしといてそのままとか、
    ゼロ割発生直前でチェックして済ますとか(元から絶たない)
    他になにかuglyな例はあるでしょうか。

    • by Anonymous Coward

      ・引数を考えるのが面倒で大域変数で渡した
      ・引数が必要なのは明白だが、何をもらえばいいのかわからないのでvoid *にしておいた
      ・構造体の後ろにダミーをつけると落ちなくなった

      • by Anonymous Coward

        上のは8ビット時代の話だが、今でもやるのは引数に再代入してgotoか

        • by Anonymous Coward on 2015年05月10日 1時10分 (#2811502)

          末尾最適化はコンパイラの仕事かと。
          アホなコンパイラしか使えない場合はその限りではないけれども。

          親コメント
          • (Alfred Vaino) Aho なコンパイラ…そそる。じゅるる

            親コメント
          • by Anonymous Coward

            末尾最適化がどう関係するんですか?

            • by Anonymous Coward

              そのテクニックが手作業による末尾再帰最適化だからですよ。

              関数内で引数を設定しなおして頭にgotoするのは、その箇所で自身を再帰で呼んで戻り値をそのままreturnするのとほぼ同じ事。
              これについて末尾再帰最適化が掛かると頭にgotoするようなコードに自動変換され、スタックの消費量その他が節約される。

              • by Anonymous Coward

                誰が頭にgotoするんですか?

              • by Anonymous Coward

                理解できないのにコメントするのは自分の無知を晒すだけですよ

              • by Anonymous Coward

                if文の本体などスコープの内側にgotoするのに、末尾再帰が何の関係があるんですか?

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...