高等 C 語言 -- setjump 與 longjump
高等 C 語言簡介字串指標與陣列函數結構物件導向記憶體檔案錯誤處理巨集處理C 與組合語言資料結構動態字串動態陣列鏈結串列雜湊表開發環境MakeCygwinMinGWDevC++wxDevC++編譯器gcc 編譯器TinyCC 編譯器LCC 編譯器應用主題CGI 程式GNU 程式視窗程式影像處理練習題訊息相關網站參考文獻最新修改簡體版English |
程式範例: setjump 與 longjump#include <stdio.h> #include <setjmp.h> jmp_buf jumper; int div(int a, int b) { if (b == 0) { // can't divide by 0 longjmp(jumper, -3); } return a / b; } int main(int argc, char *argv[]) { int jstatus = setjmp(jumper); if (jstatus == 0) { int a = atoi(argv[1]); int b = atoi(argv[2]); printf("%d/%d", a, b); int result = div(a, b); printf("=%d\n", result); } else if (jstatus == -3) printf(" --> Error:divide by zero\n"); else printf("Unhandled Error Case"); } 執行結果
來自 jserv 的建議
參考文獻
|
page revision: 9, last edited: 05 Mar 2016 03:28
Post preview:
Close preview