C語言 標準庫 <setjmp.h>
c語言 標準庫 <setjmp.h>
setjmp.h 頭文件定義了宏 setjmp()、函數 longjmp() 和變量類型 jmp_buf,該變量類型會繞過正常的函數調用和返回規則。
1. 庫變量
下面列出了頭文件 setjmp.h 中定義的變量:
序號 | 變量 & 描述 |
---|---|
1 | jmp_buf 這是一個用于存儲宏 setjmp() 和函數 longjmp() 相關信息的數組類型。 |
2. 庫宏
下面是這個庫中定義的唯一的一個宏:
序號 | 宏 & 描述 |
---|---|
1 | int setjmp(jmp_buf environment) 這個宏把當前環境保存在變量 environment 中,以便函數 longjmp() 后續使用。如果這個宏直接從宏調用中返回,則它會返回零,但是如果它從 longjmp() 函數調用中返回,則它會返回一個非零值。 |
3. 庫函數
下面是頭文件 setjmp.h 中定義的唯一的一個函數:
序號 | 函數 & 描述 |
---|---|
1 | void longjmp(jmp_buf environment, int value) 該函數恢復最近一次調用 setjmp() 宏時保存的環境,jmp_buf 參數的設置是由之前調用 setjmp() 生成的。 |