當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 longjmp()用法及代碼示例


我們可以將此函數稱為 goto 語句的高級版本,但具有更大的動態範圍。該longjump()函數允許我們通過參數來知道控件是否被跳轉。

那麽如何使用這是個問題。首先是決定你想跳的點,然後決定你想跳的地方。

在設置這些點之前,隻需做一個jum_buf對象。現在休息是蛋糕散步。在這個例子中,我已經通過調用函數將我們想要跳轉到一個名為 func 的函數中的點放在longjmp(a, 1)有兩個參數作為jum_bufobject 和 1 將在 setjump 調用時返回。

調用函數setjmp()在你想跳的地方。來自 longjump 的第二個參數將存儲在z.這z然後可以檢查循環或其他內容。

setjmp.h- longjmp() 函數 C 中的示例


#include <stdio.h>
#include <setjmp.h>

//defining the type of the variable
static jmp_buf a;

void func(void)
{
	//message for user
	printf("Function starts here..\n");

	//calling function
	longjmp(a, 1);

	//message for user
	printf("Function ends here..\n");
}

int main()
{
	int z;

	//message for user
	printf("Main starts here..\n");

	//setting current value in z
	z = setjmp(a);

	//condition to display message
	if (z != 0)
	{
		//message for user
		printf("longjmp function called\n");
		return 0;
	}
	func();

	//message for user
	printf("Main ends here..\n");

	return 0;
}

輸出

setjmp.h - longjmp() in c language



相關用法


注:本文由純淨天空篩選整理自Abhishek Sharma大神的英文原創作品 longjmp() function of setjmp.h in C。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。