এই বিভাগে, আমরা সি-তে সেটজাম্প এবং লংজাম্প কী কী তা দেখব। setjmp.h লাইব্রেরিতে সেটজাম্প() এবং লংজাম্প() অবস্থিত। এই দুটি ফাংশনের সিনট্যাক্স নিচের মত।
setjump(jmp_buf buf):বর্তমান অবস্থান সংরক্ষণ করতে buf ব্যবহার করে এবং 0.longjump(jmp_buf buf, i) ফেরত দেয় :buf দ্বারা নির্দেশিত স্থানে ফিরে যান এবং i ফিরে যান।
এগুলি ব্যতিক্রম পরিচালনার জন্য সি-তে ব্যবহৃত হয়। সেটজাম্প() ট্রাই ব্লক হিসাবে ব্যবহার করা যেতে পারে এবং লংজাম্প() থ্রো স্টেটমেন্ট হিসাবে ব্যবহার করা যেতে পারে। লংজাম্প() স্থানান্তর পয়েন্টকে নিয়ন্ত্রণ করে যা সেটজাম্প() দ্বারা নির্দেশিত হয়।
এখানে আমরা দেখব কিভাবে রিকার্সন, লুপ বা ম্যাক্রো এক্সপেনশন ব্যবহার না করে 100 বার একটি সংখ্যা প্রিন্ট করা যায়। এটি করার জন্য আমরা এখানে সেটজাম্প() এবং লংজাম্প() ফাংশন ব্যবহার করব।
উদাহরণ
#includeদ্বারা অবস্থিত বিন্দুতে ঝাঁপ দাও#include jmp_buf buf;main() { int x =1; setjmp(buf); // buf printf("5") ব্যবহার করে জাম্প পজিশন সেট করুন; // একটি সংখ্যা x++ প্রিন্ট করে; যদি (x <=100) longjmp(buf, 1); // setjmp
আউটপুট
55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555