setjmp
De cppreference.com
![]() | Esta página se ha traducido por ordenador/computador/computadora de la versión en inglés de la Wiki usando Google Translate. La traducción puede contener errores y palabras aparatosas/incorrectas. Planea sobre el texto para ver la versión original. Puedes ayudar a corregir los errores y mejorar la traducción. Para instrucciones haz clic aquí. |
Definido en el archivo de encabezado <csetjmp> | ||
#define setjmp(env) /* implementation-defined */ | ||
Guarda el contexto de ejecución actual en una variable de
env
std::jmp_buf tipo. Esta variable puede utilizarse posteriormente para restaurar el contexto de ejecución actual en función std::longjmp. Esto es, cuando una llamada a función std::longjmp está hecho, la ejecución continúa en el sitio de llamada particular, que construye la variable std::jmp_buf pasa a std::longjmp. En ese caso vuelve setjmp valor aunque pasó a std::longjmp .Original:
Saves the current execution context into a variable
env
of type std::jmp_buf. This variable can later be used to restore the current execution context by std::longjmp function. That is, when a call to std::longjmp function is made, the execution continues at the particular call site that constructed the std::jmp_buf variable passed to std::longjmp. In that case setjmp returns tho value passed to std::longjmp.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Contenido |
[editar]Parámetros
env | - | variable para guardar el estado de ejecución del programa para . Original: variable to save the execution state of the program to. The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[editar]Valor de retorno
0 si la macro fue llamado por el código original y el contexto de ejecución se guardó en
env
.Original:
0 if the macro was called by the original code and the execution context was saved to
env
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Valor distinto de cero si el salto no local se acaba de realizar. El valor de retorno de la misma pasa a std::longjmp .
Original:
Non-zero value if a non-local jump was just performed. The return value in the same as passed to std::longjmp.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar]Ejemplo
Ejecuta este código
#include <iostream>#include <csetjmp> std::jmp_buf jump_buffer; [[noreturn]]void a(int count){std::cout<<"a("<< count <<") called\n";std::longjmp(jump_buffer, count+1);// setjump() will return count+1} int main(){int count = setjmp(jump_buffer);if(count !=9){ a(count);// This will cause setjmp() to exit}}
Salida:
a(0) called a(1) called a(2) called a(3) called a(4) called a(5) called a(6) called a(7) called a(8) called
[editar]Ver también
Salta a la ubicación especificada. (función) | |
Documentación de C para setjmp |