บ้าน พัฒนาการ สแตกการโทรคืออะไร - คำจำกัดความจาก techopedia

สแตกการโทรคืออะไร - คำจำกัดความจาก techopedia

สารบัญ:

Anonim

คำจำกัดความ - Call Stack หมายถึงอะไร

call stack ใน C # เป็นรายการชื่อของเมธอดที่เรียกใช้ ณ รันไทม์จากจุดเริ่มต้นของโปรแกรมจนกระทั่งการประมวลผลคำสั่งปัจจุบัน

สแตกการโทรมีวัตถุประสงค์หลักเพื่อติดตามจุดที่แต่ละรูทีนย่อยที่ใช้งานอยู่ควรส่งคืนการควบคุมเมื่อเสร็จสิ้นการดำเนินการ Call stack ทำหน้าที่เป็นเครื่องมือในการดีบักแอปพลิเคชันเมื่อสามารถเรียกวิธีการติดตามในบริบทมากกว่าหนึ่งบริบท วิธีนี้เป็นทางเลือกที่ดีกว่าการเพิ่มรหัสติดตามไปยังวิธีการทั้งหมดที่เรียกวิธีการที่กำหนด เมื่อใดก็ตามที่มีข้อยกเว้นเกิดขึ้นที่ใดก็ได้ในรหัสผู้ใช้ Common Language Runtime (CLR) จะคลายการโทรสแต็คและค้นหา catch block เพื่อกำหนดประเภทข้อยกเว้นเฉพาะ หากไม่มีตัวจัดการที่เหมาะสม CLR จะยกเลิกแอปพลิเคชัน Call stack ดังนั้นจะใช้เพื่อบอกตัวชี้การดำเนินการว่าจะไปที่ไหนต่อไป

Techopedia อธิบาย Call Stack

Call stack จัดเป็น "stack" โครงสร้างข้อมูลในหน่วยความจำสำหรับจัดเก็บรายการในลักษณะเข้า - ออกก่อนเพื่อให้ผู้เรียกรูทีนย่อยส่งที่อยู่กลับไปยังสแต็กและรูทีนย่อยที่เรียกว่าหลังจากเสร็จสิ้น ดึงที่อยู่ผู้ส่งออกจากกองการโทรเพื่อโอนการควบคุมไปยังที่อยู่นั้น

ใน C # แอปพลิเคชันใด ๆ ที่ขึ้นต้นด้วยเมธอด "main" ซึ่งจะเรียกเมธอดอื่น ๆ ในทุกการเรียกใช้เมธอดเมธอดจะถูกเพิ่มที่ด้านบนสุดของสแต็กและถูกลบออกจากสแต็กเมื่อกลับไปที่ผู้เรียก นอกจากนี้ขอบเขตของตัวแปรที่ประกาศในบล็อกจะถูกกำหนดจากเวลาที่ค่าถูกส่งไปยังสแต็ก (เป็นส่วนหนึ่งของ call stack) จนกระทั่งการดำเนินการออกจากบล็อกเมื่อตัวแปรและสแต็กการโทรถูกแตกออกจากสแต็ก ดังนั้นสแต็กรักษาทั้งตัวแปรโลคัล (ชนิดของค่า) และ call stack (สแต็กเฟรม) ขนาดที่บ่งบอกถึงความซับซ้อนของโปรแกรม

คำจำกัดความนี้ถูกเขียนในบริบทของ C #
สแตกการโทรคืออะไร - คำจำกัดความจาก techopedia