C99 プログラムでは、可変長配列を使用していないという (理論上の) 仮定の下で、各自動変数は (循環関数呼び出しと明示的な再帰を禁止することにより) スタック全体で一度に 1 つずつしか存在できません。それらが消費しているすべてのスペースを合計すると、これがこれまでに発生する可能性のある最大のスタックサイズであると宣言できますか?
ここでちょっとした文脈: 動的メモリ割り当て (「malloc」) を使用しないプログラムを作成し、すべてのメモリを静的に割り当てることを友人に話しました (構造体ですべての状態変数をモデル化し、それをグローバルに宣言しました)。それから彼は、私が自動変数を使用している場合でも、動的メモリを使用していると言いました。私の自動変数は状態変数ではなく制御変数であると主張したので、私のプログラムは依然として静的であると見なされます。次に、私のプログラムの絶対的な最悪の動作について説明する方法が必要であると話し合ったので、上記の質問を思いつきました。
おまけの質問: 上記の仮定が成り立つ場合、すべての自動変数を静的に宣言するだけで、「本当に」静的なプログラムになるのでしょうか?