इस खंड में, हम देखेंगे कि C में setjump और longjump क्या हैं। setjump () और longjump () setjmp.h लाइब्रेरी में स्थित हैं। इन दो कार्यों का सिंटैक्स नीचे जैसा है।
setjump(jmp_buf buf):वर्तमान स्थिति को स्टोर करने के लिए buf का उपयोग करता है और 0.longjump(jmp_buf buf, i) लौटाता है:buf द्वारा इंगित स्थान पर वापस जाएं और i लौटाएं।
इनका उपयोग C में अपवाद से निपटने के लिए किया जाता है। सेटजंप () को ट्राई ब्लॉक के रूप में इस्तेमाल किया जा सकता है, और लॉन्गजंप () को थ्रो स्टेटमेंट के रूप में इस्तेमाल किया जा सकता है। लॉन्गजंप () ट्रांसफर पॉइंट को नियंत्रित करता है जिसे सेटजंप () द्वारा इंगित किया जाता है।
यहां हम देखेंगे कि रिकर्सन, लूप या मैक्रो विस्तार का उपयोग किए बिना किसी संख्या को 100 बार कैसे प्रिंट किया जाए। यहां हम ऐसा करने के लिए setjump() और longjump() फ़ंक्शन का उपयोग करेंगे।
उदाहरण
#शामिल#शामिल jmp_buf buf;main() { int x =1; सेटजम्प (बीयूएफ); // buf प्रिंटफ ("5") का उपयोग करके कूदने की स्थिति निर्धारित करें; // एक नंबर x++ प्रिंट करता है; अगर (एक्स <=100) लांगजम्प (बीयूएफ, 1); // setjmp द्वारा स्थित बिंदु पर जाएं}
आउटपुट
555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555