C ++ at_quick_exit () - Biblioteca standard C ++

Funcția at_quick_exit () din C ++ înregistrează o funcție care trebuie apelată la terminarea rapidă a programului, adică terminată prin quick_exit ().

Funcția înregistrată cu funcția at_quick_exit () este apelată când se apelează funcția quick_exit ().

prototip at_quick_exit ()

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

Această funcție este definită în fișierul antet.

at_quick_exit () Parametri

  • func: Pointer către funcția care trebuie apelată la terminarea rapidă a programului.

at_quick_exit () Returnează valoarea

Funcția at_quick_exit () returnează:

  • Zero dacă înregistrarea funcției are succes.
  • Non zero dacă înregistrarea funcției a eșuat.

Exemplul 1: Cum funcționează funcția 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; )

Când rulați programul, ieșirea va fi:

 În interiorul programului principal Ieșind prin quick_exit ()

Mai multe funcții pot fi înregistrate pentru a fi executate la ieșirea rapidă.

Dacă mai multe funcții sunt înregistrate folosind at_quick_exit (), acestea sunt executate în ordine inversă, adică funcția înregistrată în sfârșit este executată la început. Aceeași funcție poate fi înregistrată de mai multe ori.

Numărul de apeluri de funcții care pot fi înregistrate cu at_quick_exit () depinde de implementarea anumită bibliotecă. Cu toate acestea, limita minimă este de 32.

Exemplul 2: Înregistrarea funcției multiple cu 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); )

Când rulați programul, ieșirea va fi:

 Înregistrare reușită Funcția de ieșire 3 Funcția de ieșire 2 Funcția de ieșire 1

Dacă o funcție înregistrată aruncă o excepție care nu este gestionată atunci când este apelată la terminare, se apelează funcția terminate ().

Exemplul 3: at_quick_exit () cu funcție care aruncă o excepție nesolicitată

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

Când rulați programul, ieșirea va fi:

 Înregistrarea reușită Generează excepție (Programul se va încheia cu o eroare)

Articole interesante...