Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C의 setjump() 및 longjump()

<시간/>

이 섹션에서는 C에서 setjump와 longjump가 무엇인지 볼 것입니다. setjump() 및 longjump()는 setjmp.h 라이브러리에 있습니다. 이 두 함수의 구문은 다음과 같습니다.

setjump(jmp_buf buf) :buf를 사용하여 현재 위치를 저장하고 0.longjump(jmp_buf buf, i)를 반환합니다. :buf가 가리키는 곳으로 돌아가서 i를 반환합니다.

이들은 예외 처리를 위해 C에서 사용됩니다. setjump()는 try 블록으로 사용할 수 있고 longjump()는 throw 문으로 사용할 수 있습니다. longjump() 전송은 setjump()가 가리키는 pointe를 제어합니다.

여기에서는 재귀, 루프 또는 매크로 확장을 사용하지 않고 숫자를 100번 인쇄하는 방법을 볼 것입니다. 여기서는 setjump() 및 longjump() 함수를 사용하여 이를 수행합니다.

예시

#include #include jmp_buf buf;main() { int x =1; setjmp(버프); // buf를 사용하여 점프 위치 설정 printf("5"); // 숫자 출력 x++; if (x <=100) longjmp(buf, 1); // setjmp가 위치한 지점으로 점프}

출력

555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555