関数呼出しとメモリモデル 引数付きの関数呼出しの解釈 「int func ( x ) { return x + 1; }」の時に、「func ( 5 )」とは ? これまでは、「5 + 1」に置き換えて考えてきた (数学的解釈) メモリモデルでの解釈 「func ( 5 )」: メモリのどこか ( x という名前をつける ) に 5 を保存する 「return x + 1;」では、メモリ x から、5 を取り出して計算する C 言語ではどちらの解釈が適切か ? 実は.. メモリモデルになっている では、数学解釈ではダメなのか ? : 局所変数だけしか利用しないなら OK この違いが問題になるのは ? 大域/静的変数への「代入」操作が行われる(副作用がある)場合は駄目