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

C ++ funkcija at_quick_exit () reģistrē funkciju, kas jāizsauc, lai ātri pārtrauktu programmu, ti, izbeigtu, izmantojot quick_exit ().

Funkcija, kas reģistrēta ar at_quick_exit () funkciju, tiek izsaukta, kad tiek izsaukta funkcija quick_exit ().

at_quick_exit () prototips

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

Šī funkcija ir definēta galvenes failā.

at_quick_exit () parametri

  • func: rādītājs funkcijai, kas jāizsauc, lai ātri pārtrauktu programmu.

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

Funkcija at_quick_exit () atgriež:

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

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

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

Palaidot programmu, izeja būs:

 Galvenās programmas iekšpusē izeja, izmantojot quick_exit ()

Var tikt reģistrētas vairākas funkcijas, lai tās izpildītu, ātri izejot.

Ja, izmantojot at_quick_exit (), tiek reģistrētas vairākas funkcijas, tās tiek izpildītas apgrieztā secībā, ti, vispirms tiek izpildīta beidzot reģistrētā funkcija. To pašu funkciju var reģistrēt vairākas reizes.

Funkciju izsaukumu skaits, kurus var reģistrēt vietnē at_quick_exit (), 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 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); )

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: at_quick_exit () ar funkciju izmet neapstrādātu izņēmumu

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

Palaidot programmu, izeja būs:

 Reģistrācija veiksmīgi ģenerē izņēmumu (programma tiks pārtraukta ar kļūdu)

Interesanti raksti...