C ++ at_quick_exit () - C ++ Standart Kitaplığı

C ++ 'daki at_quick_exit () işlevi, hızlı program sonlandırmasında çağrılacak, yani quick_exit () yoluyla sonlandırılacak bir işlevi kaydeder.

At_quick_exit () işlevi ile kaydedilen işlev, quick_exit () işlevi çağrıldığında çağrılır.

at_quick_exit () prototipi

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

Bu işlev başlık dosyasında tanımlanmıştır.

at_quick_exit () Parametreler

  • func: Hızlı program sonlandırmasında çağrılacak işlevin işaretçisi.

at_quick_exit () Dönüş değeri

At_quick_exit () işlevi şunu döndürür:

  • İşlev kaydı başarılıysa sıfır.
  • İşlev kaydı başarısız olursa sıfır değil.

Örnek 1: at_quick_exit () işlevi nasıl çalışır?

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

Programı çalıştırdığınızda, çıktı:

 Ana Program İçinde quick_exit () ile Çıkış

Hızlı çıkışta çalıştırmak için birden fazla işlev kaydedilebilir.

At_quick_exit () kullanılarak birden fazla işlev kaydedilmişse, bunlar ters sırada yürütülür, yani en son kaydedilen işlev ilk başta çalıştırılır. Aynı işlev birden fazla kaydedilebilir.

At_quick_exit () ile kaydedilebilecek işlev çağrılarının sayısı, belirli kitaplık uygulamasına bağlıdır. Ancak minimum sınır 32'dir.

Örnek 2: Birden çok işlevi at_quick_exit () ile kaydetme

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

Programı çalıştırdığınızda, çıktı:

 Kayıt başarılı Çıkış Fonksiyon 3 Çıkış Fonksiyon 2 Çıkış Fonksiyon 1

Kayıtlı bir işlev, sonlandırmada çağrıldığında işlenmeyen bir istisna atarsa, terminate () işlevi çağrılır.

Örnek 3: işlenmeyen istisna atan işlevle at_quick_exit ()

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

Programı çalıştırdığınızda, çıktı:

 Kayıt başarılı bir şekilde İstisna Oluşturur (Program hata vererek sona erer)

Ilginç makaleler...