天天看點

C 标準庫 - <setjmp.h>

<b>setjmp.h</b> 頭檔案定義了宏 <b>setjmp()</b>、函數 <b>longjmp()</b> 和變量類型 <b>jmp_buf</b>,該變量類型會繞過正常的函數調用和傳回規則。

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

序号

變量 &amp; 描述

1

<b>jmp_buf </b>

這是一個用于存儲宏 <b>setjmp()</b> 和函數 <b>longjmp()</b> 相關資訊的數組類型。

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

宏 &amp; 描述

int setjmp(jmp_buf environment)

這個宏把目前環境儲存在變量 <b>environment</b> 中,以便函數 <b>longjmp()</b> 後續使用。如果這個宏直接從宏調用中傳回,則它會傳回零,但是如果它從 <b>longjmp()</b> 函數調用中傳回,則它會傳回一個非零值。

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

函數 &amp; 描述

void longjmp(jmp_buf environment, int value)

該函數恢複最近一次調用 <b>setjmp()</b> 宏時儲存的環境,<b>jmp_buf</b> 參數的設定是由之前調用 setjmp() 生成的。