콜 스택

작가: Lewis Jackson
창조 날짜: 8 할 수있다 2021
업데이트 날짜: 25 6 월 2024
Anonim
(EP 01.) 33 Concepts JavaScript Developer Should Know | #1. Call Stack
동영상: (EP 01.) 33 Concepts JavaScript Developer Should Know | #1. Call Stack

콘텐츠

정의-콜 스택이란 무엇입니까?

C #에서 호출 스택은 프로그램 시작부터 현재 명령문 실행까지 런타임에 호출 된 메소드 이름 목록입니다.


호출 스택은 주로 각 활성 서브 루틴이 실행을 마치면 제어를 반환해야하는 지점을 추적하기위한 것입니다. 호출 스택은 추적 할 메소드가 둘 이상의 con에서 호출 될 수있는 경우 애플리케이션을 디버그하는 도구 역할을합니다. 이것은 주어진 메소드를 호출하는 모든 메소드에 추적 코드를 추가하는 것보다 더 나은 대안을 형성합니다. 사용자 코드에서 예외가 발생할 때마다 CLR (공용 언어 런타임)은 호출 스택을 풀고 catch 블록을 검색하여 특정 예외 유형을 결정합니다. 적절한 처리기가 없으면 CLR이 응용 프로그램을 종료합니다. 따라서 호출 스택은 실행 포인터가 다음에 갈 곳을 알려주는 데 사용됩니다.

Microsoft Azure 및 Microsoft 클라우드 소개 | 이 가이드를 통해 클라우드 컴퓨팅에 관한 모든 내용과 클라우드에서 비즈니스를 마이그레이션하고 운영하는 데 Microsoft Azure가 어떻게 도움이되는지 알아 봅니다.

Techopedia는 콜 스택을 설명합니다

콜 스택은 "스택"으로 구성되며, 아이템을 후입 선출 방식으로 메모리에 저장하기위한 데이터 구조로, 서브 루틴의 호출자가 완료 후 리턴 주소를 스택과 호출 된 서브 루틴으로 푸시합니다. 호출 주소에서 리턴 주소를 팝하여 해당 주소로 제어를 전송합니다.

C #에서 모든 응용 프로그램은 "main"메서드로 시작하여 다른 메서드를 호출합니다. 메소드에 대한 모든 호출에서 메소드는 스택 맨 위에 추가되고 호출자에게 리턴 될 때 스택에서 제거됩니다. 또한 블록에 선언 된 변수의 범위는 변수 및 호출 스택이 스택에서 튀어 나올 때 실행이 블록을 떠날 때까지 값이 호출 스택의 일부로 스택에 푸시 된 시점부터 결정됩니다. 따라서 스택은 로컬 변수 (값 유형)와 호출 스택 (스택 프레임)을 유지하며 그 크기는 프로그램의 복잡성을 나타냅니다.


이 정의는 C #으로 작성되었습니다.