Adakah C Destructors Dipanggil untuk Pembolehubah Global dan Statik?

DDD
Lepaskan: 2024-11-06 13:22:02
asal
390 orang telah melayarinya

Do C   Destructors Get Called for Global and Static Variables?

Adakah C Memanggil Pemusnah untuk Pembolehubah Statik Global dan Kelas?

Bertentangan dengan beberapa andaian, C memang memanggil pemusnah untuk kedua-dua global dan kelas -pembolehubah statik. Pemusnahannya berlaku pada dua persimpangan tertentu:

  1. Setelah Kembali dari Utama: Apabila fungsi main() berakhir, semua pembolehubah global dan statik kelas dimusnahkan. Ini bersesuaian dengan § 3.6.3 piawai C 03, yang mewajibkan pemusnahan ini "akibat daripada kembali dari utama."
  2. Setelah Memanggil Keluar: Jika fungsi exit() ialah digunakan dalam program anda, ia mencetuskan pemusnahan pembolehubah global dan statik kelas "akibat daripada memanggil keluar," seperti yang digariskan dalam § 3.6.3.

Perlu diperhatikan bahawa susunan pemusnahan untuk pembolehubah ini mencerminkan susunan terbalik pembina atau permulaan dinamiknya. Tambahan pula, mengikut § 9.4.2 7, ahli data statik dimulakan dan dimusnahkan secara identik dengan objek bukan tempatan.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pemusnah tanpa gelagat yang boleh diperhatikan mungkin tidak digunakan. Ini diterokai lebih lanjut dalam respons Terry Mahaffey kepada "Adakah pemusnah C dijamin tidak akan dipanggil sehingga akhir blok?"

Atas ialah kandungan terperinci Adakah C Destructors Dipanggil untuk Pembolehubah Global dan Statik?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!