Thư viện C:




setjmp.h trong C

Header file có tên setjmp.h trong Thư viện C định nghĩa macro setjmp(), một hàm longjmp(), và một kiểu biến jmp_buf, để bỏ qua lời gọi hàm thông thường và trả về qui tắc, bằng cách cung cấp các phương thức để thực hiện các cú nhảy mà vẫn duy trì môi trường gọi hàm.

Biến được định nghĩa trong setjmp.h

Dưới đây là kiểu biến được định nghĩa trong setjmp.h:

STT Biến & Miêu tả
1 jmp_buf

Đây là một kiểu mảng được sử dụng để giữ thông tin cho macro setjmp() và hàm longjmp().

Các macro được định nghĩa trong setjmp.h

Chỉ có một macro được định nghĩa trong thư viện này:

STT Macro & Miêu tả
1

int setjmp(jmp_buf environment)

Macro này lưu trữ môi trường (environment) hiện tại bên trong biến environment để sử dụng sau bởi hàm longjmp(). Nếu macro này trả về một cách trực tiếp từ lời gọi macro, thì nó trả về 0; nhưng nếu nó trả về từ một lời gọi hàm longjmp(), thì một giá trị khác 0 được trả về.

Các hàm được định nghĩa trong setjmp.h

Chỉ có một hàm được định nghĩa trong setjmp.h:

STT Hàm & Miêu tả
1

Hàm void longjmp(jmp_buf environment, int value)

Hàm này phục hồi môi trường (environment) đã được lưu trữ bởi lời gọi gần nhất tới macro setjmp() trong cùng lời gọi hàm của chương trình với tham số tương ứng là jmp_buf.

Macro setjmp và hàm longjmp được sử dụng cùng nhau chủ yếu khi xử lý lỗi hay xử lý ngoại lệ. Có thể nói rằng, sử dụng kết hợp macro setjmp và hàm longjmp là một phiên bản go to mạnh mẽ hơn.

longjmp là khá hữu ích khi bạn muốn thoát ra khỏi một tình huống lỗi tồi tệ nào đó, khi bạn muốn nhanh chóng đưa tôi quay trở lại phần đầu tiên.

Các bài Thư viện C phổ biến khác tại VietJack: