การจัดสรรแบบคงที่คืออะไร?

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

คุณสามารถกำหนดค่าต่างๆ ให้กับตัวแปร เช่น สตริงข้อความ ตัวเลข หรืออาร์เรย์ของข้อมูล และอื่นๆ อีกมากมาย หลายภาษาต้องการให้คุณประกาศประเภทของข้อมูลที่จะจัดเก็บในตัวแปรที่จำกัดให้คุณใช้เฉพาะตัวเลข เป็นต้น

อีกสิ่งหนึ่งที่แตกต่างระหว่างภาษาโปรแกรมคือต้องประกาศประเภทการจัดสรรของตัวแปร บางภาษาไม่ต้องการสิ่งนี้ ในขณะที่บางภาษานั้นเข้มงวด มีสองประเภทการจัดสรรหลัก: แบบคงที่และแบบไดนามิก

คงที่กับไดนามิก

ตัวแปรสแตติกคือตัวแปรที่มีขนาดที่กำหนดก่อนที่จะเรียกใช้แอปพลิเคชัน มันตั้งเวลาคอมไพล์โดยคอมไพเลอร์ ตัวอย่างเช่น สามารถกำหนดสตริงที่มีความยาวแน่นอนได้ พื้นที่หน่วยความจำที่จำเป็นในการจัดเก็บสตริงยาวจะถูกจัดสรรแบบคงที่โดยคอมไพเลอร์

อีกทางเลือกหนึ่งคือการจัดสรรแบบไดนามิก ที่นี่ขนาดของตัวแปรถูกกำหนดโดยโปรแกรมขณะที่มันทำงาน โปรแกรมมีลอจิกสำหรับปรับจำนวนหน่วยความจำที่จัดสรรให้กับตัวแปร ทำให้สามารถเปลี่ยนแปลงได้ตลอดเวลาหากต้องการพื้นที่มากหรือน้อย ซึ่งโดยทั่วไปจะมอบความยืดหยุ่นในการใช้หน่วยความจำมากกว่าการจัดสรรแบบคงที่ แต่มีค่าใช้จ่ายด้านประสิทธิภาพเล็กน้อย ข้อดีหลักประการหนึ่งของการจัดสรรแบบไดนามิกคือไม่จำเป็นต้องจัดสรรจนกว่าจะจำเป็น สามารถเพิ่มหน่วยความจำได้เมื่อไม่ต้องการใช้อีกต่อไป แม้ว่าโปรแกรมจะยังคงทำงานอยู่ก็ตาม

ตัวแปรที่ได้รับการจัดสรรแบบคงที่จะถูกเก็บไว้ในหน่วยความจำอย่างถาวร ไม่ได้หมายความว่าโปรแกรมไม่สามารถเปลี่ยนค่าที่เก็บไว้ในตัวแปรได้ แต่หมายความว่าจำนวนหน่วยความจำที่ตัวแปรใช้นั้นไม่สามารถเปลี่ยนแปลงได้ แม้ว่าคุณจะเปลี่ยนตัวแปรจากค่ามากเป็นค่าเล็ก คุณก็ไม่สามารถปล่อยพื้นที่หน่วยความจำที่ไม่จำเป็นออกไปได้ คุณไม่สามารถเพิ่มพื้นที่ว่างได้ นี่อาจเป็นปัญหาหากตัวแปรมีจุดประสงค์เพื่อจัดเก็บอินพุตของผู้ใช้ที่มีความยาวผันแปรได้

ฟังก์ชันและรูทีนย่อย

ตัวแปรสแตติกจะถูกเก็บไว้ในสแต็กแทนที่จะเป็นฮีป ซึ่งหมายความว่ายังคงมีอยู่ในอินสแตนซ์ที่สร้างขึ้น ตัวแปรที่จัดสรรแบบคงที่ในเนื้อหาหลักของโปรแกรมยังคงใช้งานได้และอยู่ในหน่วยความจำตลอดเวลาที่แอปพลิเคชันกำลังทำงาน นี่เป็นเพราะสแต็กของแอปพลิเคชันอยู่ที่นั่นเสมอ เมื่อมีการเรียกใช้ฟังก์ชันหรือคลาสแยกต่างหาก ฟังก์ชันนั้นจะได้รับบันทึกบนสแต็กซึ่งสามารถจัดเก็บตัวแปรที่จัดสรรแบบสแตติกใหม่ได้ หน่วยความจำสำหรับตัวแปรเหล่านี้สามารถปล่อยได้เมื่อปิดคลาส เนื่องจากระเบียนถูกดึงออกจากสแต็ก

บทสรุป

การจัดสรรแบบสแตติกคือการจัดสรรพื้นที่หน่วยความจำสำหรับตัวแปร คอมไพเลอร์จะล็อคพื้นที่ว่างที่จำเป็นในเวลาคอมไพล์ แม้ว่าค่าของตัวแปรจะเปลี่ยนแปลงได้ แต่จำนวนพื้นที่ที่จัดสรรให้นั้นไม่สามารถเปลี่ยนแปลงได้ ขีดจำกัดนี้ป้องกันไม่ให้พื้นที่ว่างหากไม่จำเป็น นอกจากนี้ยังป้องกันไม่ให้มีพื้นที่ว่างเพิ่มขึ้นหากจำเป็น การจัดสรรแบบคงที่มีข้อได้เปรียบด้านประสิทธิภาพเหนือการจัดสรรแบบไดนามิก แต่มีความยืดหยุ่นน้อยกว่า โดยทั่วไปจะใช้ทั้งตัวแปรคงที่และไดนามิกเนื่องจากทั้งคู่ให้ประโยชน์



Leave a Comment

วิธีปิดเสียงชัตเตอร์ของกล้อง – Galaxy S 21 Plus

วิธีปิดเสียงชัตเตอร์ของกล้อง – Galaxy S 21 Plus

ถ่ายภาพเหมือนนินจาและปิดเสียงชัตเตอร์บน Galaxy S21 Plus ของคุณ นอกจากนี้ ดูว่าคุณสามารถทำอะไรได้บ้างหากคุณไม่มีตัวเลือกนี้

วิธีแก้ไขรหัสข้อผิดพลาด NVIDIA GeForce Experience 0x0003

วิธีแก้ไขรหัสข้อผิดพลาด NVIDIA GeForce Experience 0x0003

คุณพบประสบการณ์รหัสข้อผิดพลาด NVIDIA GeForce 0x0003 บนเดสก์ท็อปของคุณหรือไม่? อ่านเพื่อดูวิธีแก้ไขอย่างรวดเร็วและง่ายดาย

Pi-hole คืออะไร?

Pi-hole คืออะไร?

เรียนรู้เกี่ยวกับ Pi-hole ตัวบล็อกโฆษณาที่ทำงานที่ระดับ DNS ซึ่งสามารถบล็อกโฆษณาได้ทั่วทั้งเครือข่ายของคุณ และวิธีการติดตั้งและใช้งานได้อย่างง่ายดาย

วิธีปลดล็อก iPhone โดยไม่ต้องใช้รหัสผ่านหรือคอมพิวเตอร์

วิธีปลดล็อก iPhone โดยไม่ต้องใช้รหัสผ่านหรือคอมพิวเตอร์

ลืมรหัสผ่านล็อคหน้าจอของ iPhone ของคุณ? ค้นหาวิธีปลดล็อก iPhone โดยไม่ต้องใช้รหัสผ่านหรือคอมพิวเตอร์ในบทความนี้

Active Heat Sink คืออะไร?

Active Heat Sink คืออะไร?

เรียนรู้เกี่ยวกับ Active Heat Sink และความแตกต่างจาก Passive Heat Sink พร้อมวิธีการทำงานและข้อดี

การปิดการซิงค์ข้อมูลอัตโนมัติในแอป Gmail

การปิดการซิงค์ข้อมูลอัตโนมัติในแอป Gmail

เรียนรู้วิธีปิดการซิงค์ข้อมูลอัตโนมัติในแอป Gmail เพื่อประหยัดข้อมูลมือถือและจัดการการตั้งค่าอีเมลของคุณให้มีประสิทธิภาพมากขึ้น

วิธีการโคลนฮาร์ดไดรฟ์

วิธีการโคลนฮาร์ดไดรฟ์

ในยุคดิจิทัลสมัยใหม่ ที่ข้อมูลเป็นทรัพย์สินที่มีค่า การโคลนฮาร์ดไดรฟ์บน Windows อาจเป็นกระบวนการที่สำคัญสำหรับหลายๆ คน คู่มือที่ครอบคลุมนี้

วิธีแก้ไขไดรเวอร์ WUDFRd ไม่สามารถโหลดบน Windows 10 ได้

วิธีแก้ไขไดรเวอร์ WUDFRd ไม่สามารถโหลดบน Windows 10 ได้

คุณกำลังเผชิญกับข้อความแสดงข้อผิดพลาดขณะบูตเครื่องคอมพิวเตอร์ซึ่งระบุว่าไดรเวอร์ WUDFRd ไม่สามารถโหลดบนคอมพิวเตอร์ของคุณได้ใช่หรือไม่?

Roomba Stops, Sticks and Turns Around – Fix

Roomba Stops, Sticks and Turns Around – Fix

Fix a problem where your Roomba robot vacuum stops, sticks, and keeps turning around.

วิธีลบ GPU ออกจากพีซีที่ใช้ Windows ในปี 2023

วิธีลบ GPU ออกจากพีซีที่ใช้ Windows ในปี 2023

คุณจำเป็นต้องลบ GPU ออกจากพีซีของคุณหรือไม่? เข้าร่วมกับฉันในขณะที่ฉันอธิบายวิธีลบ GPU ออกจากพีซีของคุณในคำแนะนำทีละขั้นตอนนี้