zoukankan      html  css  js  c++  java
  • setjmp(),longjmp 例子

    mail:bookworepeng@Hotmail.com

    qq:196568501

    author:Driver Monkey

    phone:13410905075


    #include <stdio.h>
    #include <setjmp.h>
    #include <stdlib.h>
    
    static jmp_buf jmpbuffer1;
    static jmp_buf jmpbuffer2;
    
    static void longjump_f1(void);
    static void longjump_f2(void);
    
    int main(void)
    {
    	int test_auto = 0x55;
    	static int test_static = 0x55;
    	volatile int test_volatile = 0x55;
    
    	int returnv = 0;
    	static int flag = 0;
    
    	if((returnv = setjmp(jmpbuffer1)) != 0)
    	{
    		printf("after jump1:\n");
    		printf("test_auto = 0x%x,test_static = 0x%x,test_volatile = 0x%x\n"
    			    ,test_auto,test_static,test_volatile);
    
    		printf("returnv = %d\n", returnv);
    		printf("flag = %d\n", flag);
    		flag = 1;
    		
    	}
    
    	if((returnv = setjmp(jmpbuffer2)) != 0)
    	{
    		printf("after jump2:\n");
    		printf("test_auto = 0x%x,test_static = 0x%x,test_volatile = 0x%x\n"
    			    ,test_auto,test_static,test_volatile);
    
    		printf("returnv = %d\n", returnv);
    		printf("flag = %d\n", flag);
    		flag = 2;
    	}
    	
    	test_auto = 0xaa;
    	test_static = 0xaa;
    	test_volatile = 0xaa;
    	
    	switch(flag)
    	{
    		case 0:
    			longjump_f1();
    			break;
    		case 1:
    			longjump_f2();
    			break;
    		default:
    			exit(0);
    	}
    	
    }
    
    void longjump_f1(void)
    {
    	printf("longjum_f1()++\n");
    	longjmp(jmpbuffer1,30);
    	printf("longjum_f1()--\n");
    
    }
    
    void longjump_f2(void)
    {
    	printf("longjum_f2()++\n");
    	longjmp(jmpbuffer2,40);
    	printf("longjum_f2()--\n");
    
    }
    


  • 相关阅读:
    学习vue_01
    练习题 vue_01:
    测试
    django小结
    BBS_02day
    BBS 03day
    力扣(LeetCode)412. Fizz Buzz
    力扣(LeetCode)415. 字符串相加
    力扣(LeetCode)448. 找到所有数组中消失的数字
    力扣(LeetCode)453. 最小移动次数使数组元素相等
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3102193.html
Copyright © 2011-2022 走看看