Android/Java 開発者の皆様、こんにちは。
関数が関数を呼び出し、その関数が別の関数を呼び出すなどの場合、何回の呼び出し (スタック長) がスタック オーバー フローに陥りますか? 一般的な経験則はありますか?
私が尋ねている理由は、5 人のプレイヤーのカード ゲームでどちらがより効率的であるか (設計上) であるためです。
解決策 1:
for(int i=0;i<100;i++){
p1.play();
p2.play();
p3.play();
p4.play();
}
解決策 2:
p1.play(); //where p1.play() calls p2.play() and so on until p4 calls p1 again.
// this will go on for 100 times
私は解決策 2 を好むので、クラッシュが発生した場合、i=0 の p1 から i=100 の p4 までのすべての関数呼び出しを確認できます。
しかし、解決策 1 では、スタックははるかに短くなりますが、クラッシュが発生すると、ループの最初に呼び出された関数 play() がクラッシュが発生した場所で表示されます。
何を指示してるんですか?2つの質問を1つにまとめたようなものですが、それらは非常に関連しています
皆さん、ありがとうございました