C ++ at_quick_exit () - Standardna knjižnica C ++

Funkcija at_quick_exit () v jeziku C ++ registrira funkcijo, ki jo je treba poklicati ob hitrem zaključku programa, tj.

Funkcija, registrirana s funkcijo at_quick_exit (), se pokliče, ko se prikliče funkcija quick_exit ().

prototip at_quick_exit ()

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

Ta funkcija je definirana v datoteki glave.

at_quick_exit () Parametri

  • func: Kazalec na funkcijo, ki jo želite poklicati ob hitrem zaključku programa.

at_quick_exit () Vrnjena vrednost

Funkcija at_quick_exit () vrne:

  • Nič, če je registracija funkcije uspešna.
  • Ni nič, če registracija funkcije ni uspela.

Primer 1: Kako deluje at_quick_exit ()?

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

Ko zaženete program, bo rezultat:

 Izhod iz glavnega programa znotraj quick_exit ()

Za hiter izhod je mogoče registrirati več funkcij.

Če je z uporabo at_quick_exit () registriranih več funkcij, se izvedejo v obratnem vrstnem redu, tj. Funkcija, ki je nazadnje registrirana, se izvede najprej. Isto funkcijo lahko registrirate več kot enkrat.

Število klicev funkcij, ki jih je mogoče registrirati z at_quick_exit (), je odvisno od posamezne izvedbe knjižnice. Vendar je minimalna omejitev 32.

Primer 2: Registracija več funkcij z 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); )

Ko zaženete program, bo rezultat:

 Registracija uspešna Izhodna funkcija 3 Izhodna funkcija 2 Izhodna funkcija 1

Če registrirana funkcija vrže neobdelano izjemo, ko je poklicana ob zaključku, se pokliče funkcija terminate ().

Primer 3: at_quick_exit () s funkcijo, ki vrže neobdelano izjemo

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

Ko zaženete program, bo rezultat:

 Registracija uspešna Ustvari izjemo (program se bo končal z napako)

Zanimive Članki...