ในส่วนนี้เราจะมาดูวิธีการพิมพ์ตัวเลข 100 ครั้งในภาษา C มีข้อจำกัดบางประการ เราไม่สามารถใช้การวนซ้ำ การเรียกซ้ำ หรือการขยายมาโครได้
เพื่อแก้ปัญหานี้ เราจะใช้ setjump และ longjump ใน C โดย setjump() และ longjump() จะอยู่ที่ไลบรารี setjmp.h ไวยากรณ์ของฟังก์ชันทั้งสองนี้มีดังต่อไปนี้
ตัวอย่าง
#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 }
ผลลัพธ์
5555555555555555555555555555555555555555555555555555555555555555555555555555 555555555555555555555555