6
เหตุใดจึงต้องใช้เซ็กเมนต์. bss
สิ่งที่ฉันรู้คือตัวแปรส่วนกลางและตัวแปรคงถูกเก็บไว้ใน.dataเซ็กเมนต์และข้อมูลที่ไม่ได้กำหนดค่าเริ่มต้นจะอยู่ใน.bssเซ็กเมนต์ สิ่งที่ฉันไม่เข้าใจคือเหตุใดเราจึงมีเซ็กเมนต์เฉพาะสำหรับตัวแปรที่ไม่ได้กำหนดค่าเริ่มต้น หากตัวแปรที่ไม่ได้เริ่มต้นมีค่าที่กำหนดในขณะรันตัวแปรจะยังคงอยู่ใน.bssเซ็กเมนต์เท่านั้นหรือไม่ ในโปรแกรมต่อไปนี้ aอยู่ใน.dataกลุ่มและbอยู่ใน.bssกลุ่ม ถูกต้องหรือไม่ กรุณาแก้ไขฉันหากความเข้าใจของฉันไม่ถูกต้อง #include <stdio.h> #include <stdlib.h> int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9}; int b[20]; /* Uninitialized, so in the .bss and will not occupy space for 20 * sizeof (int) */ int main () { ; } นอกจากนี้ให้พิจารณาโปรแกรมต่อไปนี้ …