Trong phần này, chúng ta sẽ xem setjump và longjump trong C. Setjump () và longjump () nằm ở thư viện setjmp.h là gì. Cú pháp của hai hàm này như bên dưới.
setjump(jmp_buf buf) : uses buf to store current position and returns 0. longjump(jmp_buf buf, i) : Go back to place pointed by buf and return i.
Chúng được sử dụng trong C để xử lý ngoại lệ. Setjump () có thể được sử dụng như khối try và longjump () có thể được sử dụng như câu lệnh ném. Longjump () chuyển điều khiển con trỏ được trỏ bởi setjump ().
Ở đây chúng ta sẽ thấy cách in một số 100 lần mà không sử dụng mở rộng đệ quy, vòng lặp hoặc macro. Ở đây chúng ta sẽ sử dụng các hàm setjump () và longjump () để thực hiện điều đó.
Ví dụ
#include <stdio.h> #include <setjmp.h> jmp_buf buf; main() { int x = 1; setjmp(buf); //set the jump position using buf printf("5"); // Prints a number x++; if (x <= 100) longjmp(buf, 1); // Jump to the point located by setjmp }
Đầu ra
5555555555555555555555555555555555555555555555555555555555555555555555555555 555555555555555555555555