C ++ at_quick_exit () - C ++ Pustaka Standar

Fungsi at_quick_exit () di C ++ mendaftarkan fungsi yang akan dipanggil pada penghentian program cepat, misalnya diakhiri melalui quick_exit ().

Fungsi terdaftar dengan fungsi at_quick_exit () dipanggil ketika fungsi quick_exit () dipanggil.

at_quick_exit () prototipe

 extern int at_quick_exit (void (* func) (void));

Fungsi ini didefinisikan dalam file header.

at_quick_exit () Parameter

  • func: Pointer ke fungsi yang akan dipanggil pada penghentian program cepat.

at_quick_exit () Nilai kembali

Fungsi at_quick_exit () mengembalikan:

  • Nol jika registrasi fungsi berhasil.
  • Bukan nol jika registrasi fungsi gagal.

Contoh 1: Bagaimana fungsi at_quick_exit () bekerja?

 #include #include using namespace std; void bye() ( cout << "Program Exiting via quick_exit()"; ) int main() ( at_quick_exit(bye); cout << "Inside Main" << endl; quick_exit(0); return 0; )

Saat Anda menjalankan program, hasilnya adalah:

 Di Dalam Program Utama Keluar melalui quick_exit ()

Lebih dari satu fungsi dapat didaftarkan untuk dijalankan saat keluar cepat.

Jika lebih dari satu fungsi terdaftar menggunakan at_quick_exit (), mereka akan dieksekusi dalam urutan terbalik, yaitu fungsi yang didaftarkan pada akhirnya dijalankan pertama kali. Fungsi yang sama dapat didaftarkan lebih dari satu kali.

Jumlah panggilan fungsi yang bisa didaftarkan dengan at_quick_exit () bergantung pada implementasi perpustakaan tertentu. Namun batas minimumnya adalah 32.

Contoh 2: Mendaftarkan beberapa fungsi dengan at_quick_exit ()

 #include #include using namespace std; void quick_exit1() ( cout << "Exit Function 1" << endl; ) void quick_exit2() ( cout << "Exit Function 2" << endl; ) void quick_exit3() ( cout << "Exit Function 3" << endl; ) int main() ( int x1, x2, x3; /* Executed at last*/ x1 = at_quick_exit(quick_exit1); x2 = at_quick_exit(quick_exit2); /* Executed at first */ x3 = at_quick_exit(quick_exit3); if ((x1 != 0) or (x2 != 0) or (x3 != 0)) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; quick_exit(0); )

Saat Anda menjalankan program, hasilnya adalah:

 Registrasi berhasil Keluar Fungsi 3 Fungsi Keluar 2 Fungsi Keluar 1

Jika fungsi terdaftar melontarkan pengecualian yang tidak tertangani saat dipanggil saat terminasi, fungsi terminate () dipanggil.

Contoh 3: at_quick_exit () dengan fungsi mengeluarkan pengecualian yang tidak tertangani

 #include #include using namespace std; void bye() ( cout << "Generates Exception"; int a = 5, b = 0; int x = a/b; ) int main() ( int x; x = at_quick_exit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; quick_exit(0); )

Saat Anda menjalankan program, hasilnya adalah:

 Pendaftaran berhasil Menghasilkan Pengecualian (Program akan berakhir dengan kesalahan)

Artikel yang menarik...