C ++ at_quick_exit () - Perpustakaan Standard C ++

Fungsi at_quick_exit () di C ++ mendaftarkan fungsi yang akan dipanggil pada penghentian program cepat iaitu ditamatkan melalui quick_exit ().

Fungsi yang didaftarkan dengan fungsi at_quick_exit () dipanggil ketika fungsi quick_exit () dipanggil.

pada prototaip at_quick_exit ()

 extern int at_quick_exit (tidak sah (* func) (tidak sah));

Fungsi ini ditentukan dalam fail header.

at_quick_exit () Parameter

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

at_quick_exit () Nilai pulangan

Fungsi at_quick_exit () mengembalikan:

  • Sifar jika pendaftaran fungsi berjaya.
  • Tidak sifar jika pendaftaran fungsi gagal.

Contoh 1: Bagaimana fungsi at_quick_exit () berfungsi?

 #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; )

Semasa anda menjalankan program, outputnya adalah:

 Keluar dari Program Utama Melalui quick_exit ()

Lebih dari satu fungsi dapat didaftarkan untuk dilaksanakan pada jalan keluar cepat.

Sekiranya lebih daripada satu fungsi didaftarkan menggunakan at_quick_exit (), fungsi tersebut dilaksanakan dalam urutan terbalik, iaitu fungsi yang didaftarkan akhirnya dilaksanakan pada mulanya. Fungsi yang sama boleh didaftarkan lebih dari satu kali.

Jumlah panggilan fungsi yang dapat didaftarkan dengan at_quick_exit () bergantung pada pelaksanaan perpustakaan tertentu. Bagaimanapun had minimum adalah 32.

Contoh 2: Mendaftarkan pelbagai 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); )

Semasa anda menjalankan program, outputnya adalah:

 Pendaftaran berjaya Fungsi Keluar 3 Fungsi Keluar 2 Fungsi Keluar 1

Sekiranya fungsi yang didaftarkan melontarkan pengecualian yang tidak ditangani ketika dipanggil pada penamatan, fungsi putus () dipanggil.

Contoh 3: at_quick_exit () dengan fungsi membuang pengecualian yang tidak ditangani

 #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); )

Semasa anda menjalankan program, outputnya adalah:

 Pendaftaran berjaya Menjana Pengecualian (Program ini akan berakhir dengan kesilapan)

Artikel menarik...