C標準庫參考指南譯文系列(8)setjmp.h
英文原文:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.8.html
原文作者:Eric Huss
中文譯者:柳驚鴻 Poechant
版權宣告:本文的原文版權歸Eric Huss所有,中文譯文版權歸Poechant所有。轉載請註明來自"柳大的CSDN部落格":http://blog.csdn.net/poechant
8. setjmp.h
標頭檔案setjmp用於控制底層呼叫和函式跳轉。
巨集:
setjmp();
函式:
longjmp();
變數:
typedef jmp_buf
8.1. 變數和定義
變數jmp_buf是一個陣列型別,用於儲存setjmp和longjmp資訊。
8.2. setjmp
宣告:
int setjmp(jmp_buf environment);
儲存當前執行環境environment變數中。如果返回一個非零值,則表明longjmp到達了原始碼中所執行到的位置。否則表明執行環境已被儲存。
8.3. longjmp
宣告:
void longjmp(jmp_buf environment, int value);
這個函式會使environment恢復呼叫setjmp時儲存的environment值。這個函式時程式掉轉到曾呼叫setjmp處,好像setjmp返回value變數的值一樣。變數value的值不回為0。如果傳的是0,就用1來代替。如果呼叫setjmp的函式已經執行終止了,則返回值是不確定的。
例項:
#include<setjmp.h>
#include<stdio.h>
void some_function(jmp_buf);
int main(void)
{
int value;
jmp_buf environment_buffer;
value=setjmp(environment_buffer);
if(value!=0)
{
printf("Reached this point from a longjmp with value=%d.\n",value);
exit(0);
}
printf("Calling function.\n");
some_function(environment_buffer);
return 0;
}
void some_function(jmp_buf env_buf)
{
longjmp(env_buf,5);
}
程式的輸出是:
Calling function.
Reached this point from a longjmp with value=5.
該系列譯文在持續更新中⋯⋯
C標準庫參考指南系列譯文(1)assert.h
C標準庫參考指南系列譯文(2)ctype.h
C標準庫參考指南系列譯文(3)errno.h
C標準庫參考指南系列譯文(4)float.h
C標準庫參考指南系列譯文(5)limits.h
C標準庫參考指南系列譯文(6)locale.h
C標準庫參考指南系列譯文(7)math.h
C標準庫參考指南系列譯文(8)setjmp.h
C標準庫參考指南系列譯文(9)signal.h
C標準庫參考指南系列譯文(10)stdarg.h
C標準庫參考指南系列譯文(11)stddef.h
C標準庫參考指南系列譯文(12)stdio.h(A)
版權宣告:本文的原文版權歸Eric Huss所有,中文譯文版權歸Poechant所有。轉載請註明來自"柳大的CSDN部落格":http://blog.csdn.net/poechant
-
相關文章
- C標準庫參考指南系列譯文
- C標準庫參考指南系列譯文(11)stddef.h
- C標準庫參考指南系列譯文(10)stdarg.h
- C標準庫參考指南系列譯文(7)math.h
- C標準庫參考指南系列譯文(6)locale.h
- C標準庫參考指南系列譯文(5)limits.hMIT
- C標準庫參考指南系列譯文(4)float.h
- C標準庫參考指南系列譯文(3)errno.h
- C標準庫參考指南系列譯文(2)ctype.h
- C標準庫參考指南系列譯文(1)assert.h
- C標準庫參考指南系列譯文(12)stdio.h(A)
- C標準庫參考指南系列譯文(9)signal.h
- 轉 《五蠹》參考譯文
- SR 提交email 標準格式 --- 供參考AI
- 軟體測試BUG參考標準
- C 標準庫 -
- C++標準庫、C++標準模版庫介紹C++
- 前端參考指南前端
- C++標準庫C++
- BOOST庫 學習參考完全開發指南
- c/c++ 標準庫 vectorC++
- 找java培訓機構有哪些參考標準Java
- POCO庫中文程式設計參考指南(8)豐富的Socket程式設計程式設計
- C標準庫學習
- - C語言標準庫C語言
- C++標準庫:chronoC++
- C++標準庫:randomC++random
- Elasticsearch 參考指南(介紹)Elasticsearch
- C 標準庫 – ctype.h
- C++標準模板庫------容器C++
- C++標準庫::拾遺C++
- POCO庫中文程式設計參考指南(1)總覽程式設計
- 什麼是 C 和 C ++ 標準庫?
- c/c++ 標準庫 map set 插入C++
- c/c++ 標準庫 迭代器(iterator)C++
- HTML標籤參考(一)HTML
- #region(C# 參考)C#
- Spring Boot 參考指南(Hazelcast)Spring BootAST