Funktsioon at_quick_exit () C ++ -s registreerib funktsiooni, mida tuleb kutsuda programmi kiireks lõpetamiseks, st see lõpetatakse quick_exit () kaudu.
Funktsiooniga at_quick_exit () registreeritud funktsioon kutsutakse funktsiooni quick_exit () kutsumisel.
at_quick_exit () prototüüp
extern int at_quick_exit (void (* func) (void));
See funktsioon on määratletud päisefailis.
at_quick_exit () parameetrid
- func: funktsiooni kursor, mida kutsutakse programmi kiireks lõpetamiseks.
at_quick_exit () Tagastusväärtus
Funktsioon at_quick_exit () tagastab:
- Null, kui funktsiooni registreerimine on edukas.
- Kui funktsiooni registreerimine ebaõnnestus, pole null.
Näide 1: Kuidas funktsioon at_quick_exit () töötab?
#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; )
Programmi käivitamisel on väljund järgmine:
Põhiprogrammi sees Exit via quick_exit ()
Kiirel väljumisel saab registreerida mitu funktsiooni.
Kui at_quick_exit () abil registreeritakse mitu funktsiooni, täidetakse need vastupidises järjekorras, st lõpuks täidetakse lõpuks registreeritud funktsioon. Sama funktsiooni saab registreerida mitu korda.
Funktsioonikõnede arv, mida saab registreerida at_quick_exit (), sõltub konkreetsest teegi rakendusest. Alampiir on aga 32.
Näide 2: Mitme funktsiooni registreerimine 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); )
Programmi käivitamisel on väljund järgmine:
Registreerimine õnnestus Exit Function 3 Exit Function 2 Exit Function 1
Kui registreeritud funktsioon loob lõpetamise kutsumisel käsitlemata erandi, kutsutakse funktsiooni terminate ().
Näide 3: at_quick_exit () funktsiooniga, mis viskab käsitlemata erandi
#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); )
Programmi käivitamisel on väljund järgmine:
Registreerimine õnnestus genereerib erandi (programm lõpetatakse veaga)