問題タブ [automatic-storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 異なる C ブロックで同じ名前の自動変数: メモリ割り当て
C プログラムに次のような構造があるとします。
代わりに書くと、ある程度のメモリを節約できますか
?
変数i
は、if-else 構造の外では必要ありません。
c - 自動変数に基づく絶対的な最悪の場合のスタック サイズ
C99 プログラムでは、可変長配列を使用していないという (理論上の) 仮定の下で、各自動変数は (循環関数呼び出しと明示的な再帰を禁止することにより) スタック全体で一度に 1 つずつしか存在できません。それらが消費しているすべてのスペースを合計すると、これがこれまでに発生する可能性のある最大のスタックサイズであると宣言できますか?
ここでちょっとした文脈: 動的メモリ割り当て (「malloc」) を使用しないプログラムを作成し、すべてのメモリを静的に割り当てることを友人に話しました (構造体ですべての状態変数をモデル化し、それをグローバルに宣言しました)。それから彼は、私が自動変数を使用している場合でも、動的メモリを使用していると言いました。私の自動変数は状態変数ではなく制御変数であると主張したので、私のプログラムは依然として静的であると見なされます。次に、私のプログラムの絶対的な最悪の動作について説明する方法が必要であると話し合ったので、上記の質問を思いつきました。
おまけの質問: 上記の仮定が成り立つ場合、すべての自動変数を静的に宣言するだけで、「本当に」静的なプログラムになるのでしょうか?