C 標準庫 – <setjmp.h>
C 標準庫 - <setjmp.h>
簡介
setjmp.h 標頭檔案定義了巨集 setjmp()、函式 longjmp() 和變數型別 jmp_buf,該變數型別會繞過正常的函式呼叫和返回規則。
庫變數
下面列出了標頭檔案 setjmp.h 中定義的變數:
序號 | 變數 & 描述 |
---|---|
1 | jmp_buf 這是一個用於儲存巨集 setjmp() 和函式 longjmp() 相關資訊的陣列型別。 |
庫巨集
下面是這個庫中定義的唯一的一個巨集:
序號 | 巨集 & 描述 |
---|---|
1 | int setjmp(jmp_buf environment) 這個巨集把當前環境儲存在變數 environment 中,以便函式 longjmp() 後續使用。如果這個巨集直接從巨集呼叫中返回,則它會返回零,但是如果它從 longjmp() 函式呼叫中返回,則它會返回一個非零值。 |
庫函式
下面是標頭檔案 setjmp.h 中定義的唯一的一個函式:
序號 | 函式 & 描述 |
---|---|
1 | void longjmp(jmp_buf environment, int value) 該函式恢復最近一次呼叫 setjmp() 巨集時儲存的環境,jmp_buf 引數的設定是由之前呼叫 setjmp() 生成的。 |