亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        C基礎(chǔ)(C語言中的錯誤處理)

        字號:

        #include
            #include
            jmp_buf ebuf;
            int func();
            int main(){
            int i;
            printf("1111\n");
            i = setjmp(ebuf);
            printf("%d\n",i);
            if(i==0){
            func();
            printf("this will not be printed");
            }
            if(i==3){
            printf("3333\n");
            }
            printf("%d\n",i);
            return 0;
            }
            int func(){
            printf("2222\n");
            longjmp(ebuf,3);
            }
            輸出結(jié)果:
            1111
            0
            2222
            3
            3333
            3
            相當(dāng)與goto語句,當(dāng)執(zhí)行func函數(shù)時,由longjmp跳轉(zhuǎn)到setjmp處,然后再往下執(zhí)行。
            考試大提示注意的地方:longjmp(dbuf,val)其中的val不能為0,如果為0則系統(tǒng)默認(rèn)再i=setjmp(ebuf)中i的返回值為1;
            以下函數(shù)實(shí)現(xiàn)了多個函數(shù)之間的跳轉(zhuǎn),其中具體代碼在 動態(tài)調(diào)用鏈接庫中
            #include
            #include
            #include
            jmp_buf ebuf;
            int jump1();
            int jump2();
            int i;
            main(){
            i = setjmp(ebuf);
            if(i==0|i==2){
            jump1();
            }
            if(i==1){
            jump2();
            }
            }
            int jump1(){
            while(1){
            HINSTANCE hInstance;
            void (*func)();
            hInstance = LoadLibrary("my.dll");
            showGUI();
            char s[10];
            scanf("%s",&s);
            func = ( void (*)() )GetProcAddress(hInstance,s);
            if(!func){
            longjmp(ebuf,1);
            }
            (*func)();
            continue;
            }
            }
            int jump2(){
            printf("your input is wrong\n");
            longjmp(ebuf,2);
            }
            int showGUI(){
            FILE *login;
            char c;
            login = fopen("login.txt","r");
            if(!login){
            printf("file err:login\n");
            return;
            }
            while(1){
            c = fgetc(login);
            if(c == EOF){
            break;
            }
            printf("%c",c);
            }
            fclose(login);
            return 0;
            }