C 语言中 setjmp 和 longjmp
"multi_version":false
在 C 语言中 , 我们不能使用goto语句来跳转到另一个函数中的某个label处;但提供了两个函数——setjmp和longjmp来完成这种类型的分支跳转 。 后面我们会看到这两个函数在处理异常上面的非常有用 。
setjmp 和 longjmp 使用方法
我们都知道要想在一个函数内进行跳转 , 可以使用goto语句(不知怎么该语句在中国学生眼中就是臭名昭著 , 几乎所有国内教材都一刀切地教大家尽量不要使用它 , 但在我看来 , 这根本不是语言的问题 , 而是使用该语言的人 , 看看 Linux 内核中遍地是 goto 语句的应用吧!) , 但如果从一个函数内跳转到另一个函数的某处 , goto 是不能完成的 , 那该如何实现呢?
函数间跳转原理
我们要实现的一个GOTO语句(我自己定义的) , 能实现在函数间进行任意跳转 , 如下例 , 在函数 g() 中有条语句GOTO Label;可以跳转到 f() 函数的Label:标签所指向的位置 , 那么我们该如何实现呢?
推荐阅读
- msi|DK碾压C9拿到MSI首胜,但却暴露了一个问题,姿态赛前一言中的!
- 5G|美方刚换了5G新策略,中国移动就宣布大消息,任正非言中了
- 美国突然宣布,弱点终被暴露,任正非早就言中!
- 是哗众取宠还是泄露天机?美国最知名算命婆,临终前这般预言中国
- C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解
- 为什么C语言中的字符串可以用指针表示?
- 王思聪言中?美股上市不到半年股价腰斩,如涵控股或遭投资者集体诉讼
- 在爱因斯坦众多预言中,还曾预言了中国,如今已应验证明他的远见
- 语特欧亚全语言中心在苏州正式起航
- 玛雅文明的5个预言中,有4个已应验,为何唯独2012错了?