내가 힘든 시간 (내가 그것에 대해 복수 응답을 읽고) 활성화 기록을 이해 있습니다. 우리는 프로그램을 실행하기 시작 코드활성화 기록
int n(int a){
int b = a/2;
return a + b;
}
int main(){
int first = 1;
int second = n(first);
int third = 3;
int fourth = n(third);
return 0;
}
있다고 가정
는 스택 활성화 레코드 정적 로컬 변수, 함수 어드레스 기능을 넣어 같은
| first |
__________
| activation_record |
| first |
____________________
| third |
| activation_record |
| first |
_____________________
| activation_record1 |
| third |
| activation_record |
| first |
_______________________
로 충전 될 매개 변수 및 그 스택에 반환 값, 내가 그것을 활성화 레코드 (또는 호출 수신자 함수) 실행 완료 후, 그 활성화 가치가 반환 값으로 대체됩니다 그 스택을 이해해야 하는가? 동일한 함수가 여러번 호출되는 한 곳 데이터를 반환 보유해야 갖는 호출 스택이 동일한 activation_record 것 또한 함께
스택에 푸시되거나마다 함수가 호출 생성? 다른 말로는 컴파일 타임에 활성화 레코드를 스택에 넣을 수 있습니까? 다른 솔루션이 가능하기 때문에
덕분에 대답
그 ASCII 아트는 스택의 네 가지 스냅 샷을 할 건가요? –
@MartinBonner 예 – Darlyn