Rumah >pembangunan bahagian belakang >C++ >Apakah Proses Permulaan untuk Pembolehubah Statik dan Global dalam C dan C?
Bilakah Pembolehubah Statik dan Global Dimulakan dalam C dan C ?
Dalam C dan C , pembolehubah statik dan global mempunyai prosedur permulaan yang berbeza. Tidak seperti C , di mana objek statik dan global menjalani pembinaan sebelum fungsi utama, C tidak mempunyai permulaan sedemikian.
Pemasaan Permulaan dalam C
Dalam kod C, pembolehubah global seperti global_int1 dan global_int2, yang tidak mempunyai pemula eksplisit, dimulakan kepada 0 oleh sistem. Walau bagaimanapun, pembolehubah statik static_int1 dan static_int2 tidak dimulakan. Nilainya kekal tidak tentu sehingga ditetapkan secara eksplisit dalam program.
Nilai Permulaan dalam C
Pembolehubah dengan pemula eksplisit, seperti global_int1 dengan nilai 5, diberikan nilainya oleh pengkompil sebagai sebahagian daripada terjemahan kod. Nilai ini disimpan dalam segmen data fail boleh laku.
Setelah pelaksanaan program, sistem memuatkan fail boleh laku ke dalam memori, termasuk segmen data. Pembolehubah global kemudiannya diperuntukkan memori dan dimulakan dengan nilai yang disimpan dalam segmen data.
Fasa Permulaan dalam C
C mengikuti proses pemulaan tiga fasa untuk statik objek dengan skop ruang nama:
Pengurusan Memori dalam C
Nilai permulaan statik dalam C disimpan dalam segmen data fail boleh laku. Sama seperti C, nilai ini dimuatkan ke dalam ingatan semasa pelaksanaan program dan diberikan kepada pembolehubah masing-masing.Pembolehubah tanpa pemula atau dengan permulaan dinamik diperuntukkan memori dalam segmen bss. Sistem memulakan pembolehubah ini kepada 0 sebelum pelaksanaan program.Atas ialah kandungan terperinci Apakah Proses Permulaan untuk Pembolehubah Statik dan Global dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!