私の理解では、通常、各スレッドは 1 つのスタックのみを取得します (通常、プロセス内のすべてのスレッドはヒープを共有します)。関数呼び出しが発生したときにプログラムカウンター(PC)の値を格納するためにスタックが使用されるといつも思っていました。integer
しかし、その後、またはなどの特定の変数タイプboolean
がスタックにも割り当てられていることをどこかで読みました。スタック上の値は厳格な FILO 方式で管理されているため、これらの変数をいつでも取得するにはどうすればよいでしょうか?
たとえば、 を宣言した後int a, b, c;
、これらの変数に対して、スコープ内でいつでも任意の順序で好きなことを行うことができます。これはどのように行われますか?c
スタックの一番上に値がなく、したがって値が隠されているのはなぜa, b
ですか?