なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net (914レス)
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1448704298/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
208: デフォルトの名無しさん [sage] 2015/12/23(水) 08:59:40.61 ID:r+tlUph/ 名前解決まで計算時間に含めるなら もう再帰云々じゃなくて長大な再帰なしの一つの関数で全部こなせって話になるんだがな >>207 いや、そうはならない。 レジスタの退避が必要になるから、自己再帰するならどっちにしても同じだけpush/popは必要になる。 最適化が掛かったらその限りじゃないけど。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/208
212: デフォルトの名無しさん [sage] 2015/12/23(水) 09:50:24.66 ID:r+tlUph/ >>210 再帰で書いた何の変哲もないフィボナッチ関数をビルドしたケースを示すよ https://gist.github.com/pixie-grasper/ba2d0ade523b8599c182 gccではr12を、clangではraxを、rbp/rbxの他に退避してるのが分かる。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/212
214: デフォルトの名無しさん [sage] 2015/12/23(水) 11:25:42.60 ID:r+tlUph/ そんな事をすると 既に退避させてある値を別なレジスタに退避させてから、退避させたい値を退避するコードを吐く羽目になるけど レジスタが最低でも加算無限個無いと出来ないからね。仕方ないね。 http://mevius.5ch.net/test/read.cgi/tech/1448704298/214
216: デフォルトの名無しさん [sage] 2015/12/23(水) 12:07:45.20 ID:r+tlUph/ >>215 いつの時代の話をしてるのか分からんのだけど、所謂Intel系の64bit環境(amd64)だとレジスタ渡しがデフォルトだよ。 https://en.wikipedia.org/wiki/X86_calling_conventions#List_of_x86_calling_conventions http://mevius.5ch.net/test/read.cgi/tech/1448704298/216
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.429s*