Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

setjmp() และ longjmp() ในภาษา C

setjmp() และ longjmp() ใน setjmp.h ใช้สำหรับ Exception Handling แบบต่ำระดับ

ไวยากรณ์

setjmp(jmp_buf buf)  // บันทึกตำแหน่งปัจจุบัน คืนค่า 0
longjmp(jmp_buf buf, int val)  // กระโดดกลับไปตำแหน่งที่ buf บันทึกไว้ คืนค่า val

setjmp คล้าย try block, longjmp คล้าย throw statement

ตัวอย่าง: พิมพ์เลข 100 ครั้ง

#include <stdio.h>
#include <setjmp.h>

jmp_buf buf;

int main() {
    int x = 1;
    setjmp(buf);
    printf("5");
    x++;
    if (x <= 100)
        longjmp(buf, 1);
    return 0;
}

ผลลัพธ์

5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555