Rumah > pembangunan bahagian belakang > C++ > Bilakah Pemusnah Dipanggil untuk Pembolehubah Statik Global dan Kelas dalam C?

Bilakah Pemusnah Dipanggil untuk Pembolehubah Statik Global dan Kelas dalam C?

Patricia Arquette
Lepaskan: 2024-11-07 14:39:03
asal
426 orang telah melayarinya

When are Destructors Called for Global and Class Static Variables in C  ?

Invokasi Pemusnah untuk Pembolehubah Statik Global dan Kelas dalam C

Dalam C , objek biasanya diperuntukkan dalam memori tindanan (untuk pembolehubah tempatan) dan ingatan timbunan (untuk pembolehubah yang diperuntukkan secara dinamik). Walau bagaimanapun, pembolehubah global dan pembolehubah statik kelas diperuntukkan dalam bahagian data program, menimbulkan soalan: Bilakah pemusnahnya dipanggil?

Menurut piawaian C 03 (§ 3.6.3), pemusnah untuk objek yang dimulakan dengan tempoh storan statik dipanggil apabila kembali daripada fungsi utama dan apabila fungsi keluar dipanggil. Objek ini dimusnahkan dalam susunan terbalik penyiapan pembinanya atau penyiapan permulaan dinamik.

Selain itu, untuk ahli data statik kelas (§ 9.4.2 7), kelakuan pemulaan dan pemusnahannya adalah serupa dengan tingkah laku bukan- objek tempatan.

Walau bagaimanapun, jika pemusnah tidak mempunyai tingkah laku yang boleh diperhatikan (iaitu, tidak melakukan kesan sampingan), ia mungkin tidak digunakan. Ini kerana pengkompil boleh mengoptimumkan kod untuk mengelak daripada memanggil pemusnah yang tidak diperlukan, seperti yang diterangkan dalam respons Terry Mahaffey kepada "Adakah pemusnah C dijamin tidak akan dipanggil sehingga akhir blok?".

Atas ialah kandungan terperinci Bilakah Pemusnah Dipanggil untuk Pembolehubah Statik Global dan Kelas dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan