C ++ at_quick_exit () - C ++ szabványos könyvtár

A C ++ at_quick_exit () függvénye regisztrálja a függvényt, amelyet a program gyors leállítására kell meghívni, azaz a quick_exit () segítségével le kell állítani.

Az at_quick_exit () függvénnyel regisztrált függvény meghívásra kerül, amikor a quick_exit () függvény meghívásra kerül.

at_quick_exit () prototípus

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

Ezt a függvényt a fejlécfájl határozza meg.

at_quick_exit () paraméterek

  • func: A program gyors leállításakor hívandó funkció mutatója.

at_quick_exit () Visszatérési érték

Az at_quick_exit () függvény visszatér:

  • Nulla, ha a függvény regisztrációja sikeres.
  • Nem nulla, ha a függvény regisztrációja sikertelen volt.

1. példa: Hogyan működik az at_quick_exit () függvény?

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

A program futtatásakor a kimenet a következő lesz:

 A főprogram belseje Kilépés a quick_exit () útján

Egynél több funkciót lehet regisztrálni a gyors kilépéshez.

Ha egynél több függvényt regisztrálunk az at_quick_exit () használatával, akkor fordított sorrendben hajtjuk végre őket, vagyis először a végre regisztrált függvényt hajtjuk végre. Ugyanaz a funkció többször is regisztrálható.

Az at_quick_exit () címen regisztrálható függvényhívások száma az adott könyvtár megvalósításától függ. A minimumhatár azonban 32.

2. példa: Több funkció regisztrálása az at_quick_exit () paranccsal

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

A program futtatásakor a kimenet a következő lesz:

 A regisztráció sikeres Kilépés a 3. funkcióból Kilépés a 2. funkcióból Kilépés az 1. funkcióból

Ha egy regisztrált függvény kezeletlen kivételt dob, amikor felhívják a felmondást, a terminate () függvény meghívásra kerül.

3. példa: at_quick_exit () függvénydobással kezeletlen kivétel

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

A program futtatásakor a kimenet a következő lesz:

 A regisztráció sikeres Kivételt generál (a program hibával zárul)

érdekes cikkek...