C ++ atexit () - C ++ standarta bibliotēka

Funkcija atexit () C ++ reģistrē funkciju, kas jāizsauc parastai programmas pārtraukšanai.

Funkcija atexit () C ++ reģistrē funkciju, kas jāizsauc parastai programmas pārtraukšanai.

atexit () prototips

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

Šī funkcija ir definēta galvenes failā.

atexit () parametri

  • func: rādītājs funkcijai, kas jāizsauc parastai programmas pārtraukšanai.

atexit () Atgriešanās vērtība

Funkcija atexit () atgriež:

  • Nulle, ja funkciju reģistrācija ir veiksmīga.
  • Ja funkcija reģistrēties neizdevās, nav nulle.

1. piemērs: Kā darbojas atexit () funkcija?

 #include #include using namespace std; void bye() ( cout << "Program Exiting Successfully"; ) int main() ( int x; x = atexit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

Palaidot programmu, izeja būs:

 Reģistrācija veiksmīga Programma veiksmīgi iziet

Vairākas funkcijas var reģistrēt izpildei pēc izbeigšanas.

Ja ir reģistrētas vairākas atexit funkcijas, tās tiek izpildītas apgrieztā secībā, ti, vispirms tiek izpildīta atlast reģistrētā funkcija. To pašu funkciju var reģistrēt vairākas reizes.

Funkciju izsaukumu skaits, kurus var reģistrēt atexit (), ir atkarīgs no konkrētās bibliotēkas ieviešanas. Tomēr minimālais ierobežojums ir 32.

2. piemērs: vairāku funkciju reģistrēšana ar atexit ()

 #include #include using namespace std; void exit1() ( cout << "Exit Function 1" << endl; ) void exit2() ( cout << "Exit Function 2" << endl; ) void exit3() ( cout << "Exit Function 3" << endl; ) int main() ( int x1, x2, x3; /* Executed at last*/ x1 = atexit(exit1); x2 = atexit(exit2); /* Executed at first */ x3 = atexit(exit3); if ((x1 != 0) or (x2 != 0) or (x3 != 0)) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

Palaidot programmu, izeja būs:

 Reģistrācija veiksmīga Iziet no 3. funkcijas. Iziet no 2. funkcijas. Iziet no 1. funkcijas

Ja reģistrētā funkcija izsauc neapstrādātu izņēmumu, kad tiek izsaukta izbeigšana, tiek izsaukta funkcija terminate ().

3. piemērs: atexit () ar funkciju izmetot neapstrādātu izņēmumu

 #include #include using namespace std; void bye() ( cout << "Generates Exception"; int a = 5, b = 0; int x = a/b; /* Program will terminate here */ cout << "Division by zero"; ) int main() ( int x; x = atexit(bye); if (x != 0) ( cout << "Registration Failed"; exit(1); ) cout << "Registration successful" << endl; return 0; )

Palaidot programmu, izeja būs:

 Reģistrācija ir veiksmīga

Interesanti raksti...