アカウント名:
パスワード:
はい、クラス/構造体に入れるの面倒でグローバル転がしてテストしてそのままなんてのはよくやっちゃいます。あとはデバッガで追いやすいようにローカルに使われるものを広域変数にしといてそのままとか、ゼロ割発生直前でチェックして済ますとか(元から絶たない)他になにかuglyな例はあるでしょうか。
さっさと引退してください・・・
・引数を考えるのが面倒で大域変数で渡した・引数が必要なのは明白だが、何をもらえばいいのかわからないのでvoid *にしておいた・構造体の後ろにダミーをつけると落ちなくなった
上のは8ビット時代の話だが、今でもやるのは引数に再代入してgotoか
流石に、PICのようにスタック段数が貧困なプロセッサ相手なら仕方ないですが、普通はそういう真似はやらない気が…(-_-;スタックに余り割けない環境であったとしても、関数を細分化するとか、タスク自体を減らすとかの方向に行くような。# RTOSで8MBあれば普通はそういう事考えないで済む気がする。
末尾最適化はコンパイラの仕事かと。アホなコンパイラしか使えない場合はその限りではないけれども。
(Alfred Vaino) Aho なコンパイラ…そそる。じゅるる
末尾最適化がどう関係するんですか?
そのテクニックが手作業による末尾再帰最適化だからですよ。
関数内で引数を設定しなおして頭にgotoするのは、その箇所で自身を再帰で呼んで戻り値をそのままreturnするのとほぼ同じ事。これについて末尾再帰最適化が掛かると頭にgotoするようなコードに自動変換され、スタックの消費量その他が節約される。
誰が頭にgotoするんですか?
理解できないのにコメントするのは自分の無知を晒すだけですよ
if文の本体などスコープの内側にgotoするのに、末尾再帰が何の関係があるんですか?
・printf入れたら落ちなくなったが抜けてるぞ
ugly hack とはちょっと違うんですが、コンパイラのコード生成がバグっててprintf(というか関数呼び出し)を入れると正常に動作する(コードを吐く)という現象には遭遇したことがあります。妙に利口でおなじファイル内に何もしない関数を定義して呼び出しても最適化で削除されてしまって動かなかったんですよねぇ。
ugly なだけで hack じゃないじゃないか!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
もしかして: やっつけ (スコア:0)
はい、クラス/構造体に入れるの面倒でグローバル転がしてテストしてそのまま
なんてのはよくやっちゃいます。
あとはデバッガで追いやすいようにローカルに使われるものを広域変数にしといてそのままとか、
ゼロ割発生直前でチェックして済ますとか(元から絶たない)
他になにかuglyな例はあるでしょうか。
Re:もしかして: やっつけ (スコア:2, すばらしい洞察)
さっさと引退してください・・・
Re: (スコア:0)
・引数を考えるのが面倒で大域変数で渡した
・引数が必要なのは明白だが、何をもらえばいいのかわからないのでvoid *にしておいた
・構造体の後ろにダミーをつけると落ちなくなった
Re: (スコア:0)
上のは8ビット時代の話だが、今でもやるのは引数に再代入してgotoか
Re:もしかして: やっつけ (スコア:1)
流石に、PICのようにスタック段数が貧困なプロセッサ相手なら仕方ないですが、普通はそういう真似はやらない気が…(-_-;
スタックに余り割けない環境であったとしても、関数を細分化するとか、タスク自体を減らすとかの方向に行くような。
# RTOSで8MBあれば普通はそういう事考えないで済む気がする。
Re: (スコア:0)
末尾最適化はコンパイラの仕事かと。
アホなコンパイラしか使えない場合はその限りではないけれども。
Re:もしかして: やっつけ (スコア:1)
(Alfred Vaino) Aho なコンパイラ…そそる。じゅるる
Re: (スコア:0)
末尾最適化がどう関係するんですか?
Re: (スコア:0)
そのテクニックが手作業による末尾再帰最適化だからですよ。
関数内で引数を設定しなおして頭にgotoするのは、その箇所で自身を再帰で呼んで戻り値をそのままreturnするのとほぼ同じ事。
これについて末尾再帰最適化が掛かると頭にgotoするようなコードに自動変換され、スタックの消費量その他が節約される。
Re: (スコア:0)
誰が頭にgotoするんですか?
Re: (スコア:0)
理解できないのにコメントするのは自分の無知を晒すだけですよ
Re: (スコア:0)
if文の本体などスコープの内側にgotoするのに、末尾再帰が何の関係があるんですか?
Re: (スコア:0)
・printf入れたら落ちなくなった
が抜けてるぞ
Re: (スコア:0)
ugly hack とはちょっと違うんですが、コンパイラのコード生成がバグっててprintf(というか関数呼び出し)を入れると正常に動作する(コードを吐く)という現象には遭遇したことがあります。
妙に利口でおなじファイル内に何もしない関数を定義して呼び出しても最適化で削除されてしまって動かなかったんですよねぇ。
Re: (スコア:0)
ugly なだけで hack じゃないじゃないか!