Trong phần này ta sẽ xem cách in một số 100 lần trong C. Có ràng buộc: không dùng vòng lặp, đệ quy, mở rộng macro.
Giải pháp dùng setjmp và longjmp trong C. Hai hàm này nằm trong thư viện setjmp.h.
Ví dụ
#include <stdio.h>
#include <setjmp.h>
jmp_buf buf;
int main() {
int x = 1;
setjmp(buf); // đặt vị trí nhảy bằng buf
printf("5"); // In một số
x++;
if (x <= 100)
longjmp(buf, 1); // Nhảy về điểm setjmp
return 0;
}
Kết quả
5555555555555555555555555555555555555555555555555555555555555555555555555555 555555555555555555555555