#include<stdio.h>
void bar()
{
int a=4;
}
void foo()
{
int a;
printf("%d",a);
}
int main()
{
bar();
foo();
}
上記のプログラムは、出力を何らかのジャンク値として提供していると確信しています(これは、コンパイルして実行したときに起こることです)。しかし、一部のコンパイラが出力を 4 自体として与える可能性があるという記事を読みました。与えられた説明は、それがアクティベーション スタックとアクティベーション フレームに関連しているというものでした。理解できない。bar() 関数の int a=4 の値が、後で使用するためにアクティベーション スタックのどこかに格納されているようなものですか??混乱しています!!