C语言中的跳转函数
/*
* main.c
*
*Created on: Oct 29, 2010
*Author: jenson
*/
#include
#include
jmp_buf ebuf;
void fun(void);
int main(){
int i;
printf("1 ");
i = setjmp(ebuf);
if(i == 0){
fun();
printf("this will not be printed.\n");
}
printf("%d\n",i);
return 0;
}
void fun(void){
printf("3 ");
longjmp(ebuf,5);
}
宏函数setjmp在缓冲区ebuf中保存了系统堆栈内容,以供函数longjmp以后使用。调用宏函数setjmp时,返回值为零。然后函数longjmp把一个变元传递给setjmp()函数,该值(恒为非零)就是调用longjmp后出现的setjmp值。
【C语言中的跳转函数】转载于:https://blog.51cto.com/wujuxiang/412509
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- Android中的AES加密-下
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 放下心中的偶像包袱吧
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解