c語言的跳轉longjmp

#include <csetjmp>

#include <cstdlib>

static jmp_buf g_env;

void Recursion (int nDepth) {

if (nDepth >= 3)

longjmp (g_env, 1);

Recursion (nDepth + 1);

}

int main (int argc, char* argv[]) {

int nRetVal = setjmp (g_env);

if (nRetVal == 1)

{

return 0;

}

Recursion (0);

return 0;

}

運行流程:

main --> setjmp --(x:跳轉標記)--> if( == 1) --> Recursion() --> longjmp() --> (x:跳轉標記)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章