질문과 답변

program님의 답변에 대한 질문 날짜:2020-3-5 6:22:18 조회수:80
작성자 : Air
포인트 : 83
가입일 : 2020-02-15 17:44:18
방문횟수 : 21
글 13개, 댓글 9개
소개 :
작성글 보기
쪽지 보내기
Program 3월5일 12:38:59  답글
함수호출 규약부분에서 호출하면 변수가 스택프레임에 저장되고 어쩌고 ...
예전에 읽어 보았는데 좀 신기하고 정교하다는 느낌을 받았습니다.
당시는 어느정도 이해했지만 나로써는 깊이 들어가기 보다는 그냥 필요하면 함수를 호출하고
사용후 결과를 얻고 반환하고 이정도로 이해하고 넘어감니다.

또한 스택프레임뿐만 아니라 많은 경우에 있어서 한정된 메모리(램?)를 여러가지 요청에 의해
사용되어지기 위해서 운영체제가 알아서 적당히 메모리내용을 잠시 옮겨놓고 우선순위 앞부터
처리하고 다시 옮겨놓은 부분을 가져오고 하므로
나는 이렇게 이해하고 내가 프로그래밍할 부분만 관심을 가집니다 

단순희 정의하고 사용만 한다면 어떻게 함수호출을 생각하면 되나요?
이 질문의 답은 나로서는 쉽게 생각하면 된다고 생각하는데
글쎄요 어떨지 또는 무슨 말인지 그렇습니다.
program님의 답변입니다

저도 그렇게 이해하고 싶기는 한데 그런 설명에서 함수를 호출한 함수의 변수는 어떻게 되는지가 궁금합니다.
제 질문입니다.

목록보기 삭제 수정 신고 스크랩

Program 3월5일 8:21:01  

호출한 함수의 인수는 스택에 먼저 들어가므로

질문의 함수를 호출한 함수의 변수는 어떻게 되는지에서

이 변수는 더 먼저 스택에 들어가 있다고 생각해 볼 수 있겠군요
그 다음 함수르 호출하는 코드가 있다고 하면 이 호출한 함수의 인수가
기존 스택위에 또 쌓이는 것이 아닌가 생각됩니다.

그리하여 복귀하면 우리의 기대를 져버리지 않도록
컴파일러든 운영체제든 누군가 알아서 정교하게 복귀를 흐뜨리지 않겠지요

Air 3월6일 6:13:23  

오! 드디어 함수 호출 과정을 어떻게 이해해야 되는지 알았습니다.
감사합니다.


로그인하셔야 댓글을 달 수 있습니다.