C 標準庫 – <setjmp.h>

C 標準庫 - <setjmp.h>

簡介

setjmp.h 標頭檔案定義了巨集 setjmp()、函式 longjmp() 和變數型別 jmp_buf,該變數型別會繞過正常的函式呼叫和返回規則。

庫變數

下面列出了標頭檔案 setjmp.h 中定義的變數:

序號變數 & 描述
1jmp_buf
這是一個用於儲存巨集 setjmp() 和函式 longjmp() 相關資訊的陣列型別。

庫巨集

下面是這個庫中定義的唯一的一個巨集:

序號巨集 & 描述
1int setjmp(jmp_buf environment)
這個巨集把當前環境儲存在變數 environment 中,以便函式 longjmp() 後續使用。如果這個巨集直接從巨集呼叫中返回,則它會返回零,但是如果它從 longjmp() 函式呼叫中返回,則它會返回一個非零值。

庫函式

下面是標頭檔案 setjmp.h 中定義的唯一的一個函式:

序號函式 & 描述
1void longjmp(jmp_buf environment, int value)
該函式恢復最近一次呼叫 setjmp() 巨集時儲存的環境,jmp_buf 引數的設定是由之前呼叫 setjmp() 生成的。