C ++ at_quick_exit () - C ++ standardraamatukogu

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)

Huvitavad Artiklid...