C언어 실행 과정 질문입니다
글쓴이: mayongho / 작성시간: 토, 2014/04/19 - 1:47오후
함수를 사용했을 때 메모리상에서 어떻게 처리되는지 그 과정을 알고 싶습니다.
더 자세히 말하면
실행중에 함수를 만나게 되면 그 함수의 정의부분의 시작점으로 이동후 실행한뒤 호출했던 주소로 다시 돌아오는 것으로 알고있는데
함수사용될때의 인자 값이나 호출된 주소값이 다 다를텐데 ,, 그럼 실행중에 함수를 만날때 마다
공통부분은(함수의 정의부분) 제외하고 그외의 정보들은 메모리에 새롭게 추가되는 건가요?
....아 뭔가 설명이 잘 안되네요 ㅜㅜ 그냥 함수 실행과정이 궁금합니다..ㅜㅜ
Forums:
'함수 콜스택' 검색해보세요. (따옴표 빼고)
'함수 콜스택' 검색해보세요. (따옴표 빼고)
함수를 호출하면서 호출 지점의 주소(return
함수를 호출하면서 호출 지점의 주소(return address)와 인수들을 스택에 올려놓습니다.
호출된 함수는 스택의 인수를 사용하여 업무를 수행하여, 그 결과값을 다시 스택에 올리고 주어진 return address 를 사용하여 호출된 곳으로 돌아갑니다.
호출된 함수 내에서 사용하는 변수 또한 스택을 사용하기 때문에 여러 쓰레드에서 다른 인수를 사용하여 동일한 함수를 호출해서 사용해도 충돌이 일어나지 않습니다.
감사합니다 ^^
이해가됬습니당. ^^
댓글 달기