C ++ at_quick_exit () - Thư viện chuẩn C ++

Hàm at_quick_exit () trong C ++ đăng ký một hàm được gọi khi kết thúc chương trình nhanh chóng tức là kết thúc qua quick_exit ().

Hàm được đăng ký với hàm at_quick_exit () được gọi khi hàm quick_exit () được gọi.

nguyên mẫu at_quick_exit ()

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

Hàm này được định nghĩa trong tệp tiêu đề.

Tham số at_quick_exit ()

  • func: Con trỏ đến hàm được gọi khi kết thúc chương trình nhanh chóng.

at_quick_exit () Giá trị trả về

Hàm at_quick_exit () trả về:

  • 0 nếu đăng ký chức năng thành công.
  • Khác 0 nếu đăng ký chức năng không thành công.

Ví dụ 1: Hàm at_quick_exit () hoạt động như thế nào?

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

Khi bạn chạy chương trình, đầu ra sẽ là:

 Bên trong Chương trình Chính Thoát qua quick_exit ()

Có thể đăng ký nhiều hơn một chức năng để thực thi khi thoát nhanh.

Nếu có nhiều hơn một hàm được đăng ký bằng at_quick_exit (), chúng được thực thi theo thứ tự ngược lại, tức là hàm đã đăng ký cuối cùng được thực thi trước. Có thể đăng ký cùng một chức năng nhiều lần.

Số lượng các lệnh gọi hàm có thể được đăng ký với at_quick_exit () phụ thuộc vào việc triển khai thư viện cụ thể. Tuy nhiên, giới hạn tối thiểu là 32.

Ví dụ 2: Đăng ký nhiều hàm với 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); )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Đăng ký thành công Chức năng Thoát 3 Chức năng Thoát 2 Chức năng Thoát 1

Nếu một hàm đã đăng ký ném một ngoại lệ chưa được xử lý khi được gọi khi kết thúc, thì hàm cuối () sẽ được gọi.

Ví dụ 3: at_quick_exit () với hàm ném ra ngoại lệ không được xử lý

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

Khi bạn chạy chương trình, đầu ra sẽ là:

 Đăng ký thành công Tạo ngoại lệ (Chương trình sẽ kết thúc nếu có lỗi)

thú vị bài viết...