«Setjump» y «Longjump» se definen en setjmp.h , un archivo de encabezado en la biblioteca estándar de C.
- setjump(jmp_buf buf) : usa buf para recordar la posición actual y devuelve 0.
- longjump(jmp_buf buf, i) : Vuelve al lugar al que apunta buf y devuelve i .
// A simple C program to demonstrate working of setjmp() and longjmp() #include<stdio.h> #include<setjmp.h> jmp_buf buf; void func() { printf("Welcome to GeeksforGeeks\n"); // Jump to the point setup by setjmp longjmp(buf, 1); printf("Geek2\n"); } int main() { // Setup jump position using buf and return 0 if (setjmp(buf)) printf("Geek3\n"); else { printf("Geek4\n"); func(); } return 0; }
Producción :
Geek4 Welcome to GeeksforGeeks Geek3
La característica principal de esta función es proporcionar una forma que se desvía de la secuencia estándar de llamada y devolución. Esto se usa principalmente para implementar el manejo de excepciones en C. setjmp se puede usar como try (en lenguajes como C++ y Java). La llamada a longjmp se puede usar como throw (Tenga en cuenta que longjmp() transfiere el control al punto establecido por setjmp()).
Este artículo es una contribución de Aditya Chatterjee . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA