C ++ at_quick_exit () - C ++ - vakiokirjasto

C ++: n at_quick_exit () -toiminto rekisteröi toiminnon, joka kutsutaan ohjelman nopealle lopettamiselle eli lopetetaan quick_exit (): n kautta.

Funktiolle, joka on rekisteröity at_quick_exit () -funktiolle, kutsutaan, kun quick_exit () -funktiota kutsutaan.

at_quick_exit () prototyyppi

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

Tämä toiminto on määritelty otsikkotiedostossa.

at_quick_exit () -parametrit

  • func: Osoitin toiminnolle, joka kutsutaan ohjelman nopeaa lopettamista varten.

at_quick_exit () Palautusarvo

At_quick_exit () -funktio palauttaa:

  • Nolla, jos toiminnon rekisteröinti onnistuu.
  • Ei nolla, jos toiminnon rekisteröinti epäonnistui.

Esimerkki 1: Kuinka funktio at_quick_exit () toimii?

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

Kun suoritat ohjelmaa, tulos on:

 Pääohjelman sisällä Poistuminen quick_exit (): n kautta

Useampi kuin yksi toiminto voidaan rekisteröidä suoritettavaksi nopean poistumisen yhteydessä.

Jos at_quick_exit (): llä rekisteröidään useampi kuin yksi toiminto, ne suoritetaan päinvastaisessa järjestyksessä, ts. Viimeiseksi rekisteröity toiminto suoritetaan aluksi. Sama toiminto voidaan rekisteröidä useammin kuin kerran.

At_quick_exit () -sivulla rekisteröitävien toimintokutsujen määrä riippuu tietystä kirjastototeutuksesta. Vähimmäisraja on kuitenkin 32.

Esimerkki 2: Useiden toimintojen rekisteröinti osoitteella 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); )

Kun suoritat ohjelmaa, tulos on:

 Rekisteröinti onnistui Poistu toiminnosta 3 Poistu toiminnosta 2 Poistu toiminnosta 1

Jos rekisteröity toiminto heittää käsittelemättömän poikkeuksen lopetettaessa, lopetustoiminto () kutsutaan.

Esimerkki 3: at_quick_exit () ja toiminto heittää käsittelemättömän poikkeuksen

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

Kun suoritat ohjelmaa, tulos on:

 Rekisteröinti onnistui Luo poikkeuksen (Ohjelma päättyy virheellisesti)

Mielenkiintoisia artikkeleita...