setjmp与longjmp

简介:

这里有编写了很好的文章:http://blog.csdn.net/cscmaker/article/details/7584433,我自己试了一个小例子。


#include <setjmp.h>
#include <stdio.h>
 
void my_print(const char *str, jmp_buf jb)
{
    printf("in my_print()\n");
 
    if (str == NULL) {
        longjmp(jb, 2);
    }
    printf("my_print: %s\n", str);
}
 
int main()
{
    int ret = 0;
    char *str = NULL;
 
    jmp_buf jbuf;
    int jmp_ret = setjmp(jbuf);
    if (jmp_ret == 2) {
        printf("ERROR: name == NULL\n");
        str = "Hevake";
    }
    my_print(str, jbuf);
 
    return 0;
}

输出结果是:

in my_print()
ERROR: name == NULL
in my_print()
my_print: Hevake


我们可以用setjmp与longjmp实现类似异常处理的功能。


目录
相关文章
|
搜索推荐 前端开发 架构师
阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件(上)
阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件(上)
2904 0
阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件(上)
|
9月前
|
人工智能 虚拟化 芯片
《解锁AI芯片新境界:提升专用人工智能芯片通用性与灵活性的热点技术》
在人工智能快速发展的背景下,专用AI芯片虽在特定任务上表现出色,但提升其通用性和灵活性成为关键。热点技术包括:可重构架构(如FPGA),支持动态调整硬件结构;混合精度计算,根据任务需求调整计算精度;多模态处理,融合视觉、语音等数据;软件定义硬件,通过编程实现功能灵活配置;硬件虚拟化,将物理资源虚拟化为多个独立逻辑单元;异构集成,结合CPU、GPU、NPU等单元协同工作。这些技术共同推动AI芯片的广泛应用和性能提升。
294 14
《解锁AI芯片新境界:提升专用人工智能芯片通用性与灵活性的热点技术》
|
12月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
313 56
|
11月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的QPSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的QPSK调制解调系统的硬件实现与仿真效果。系统包含测试平台(testbench)、高斯信道模块、误码率统计模块,支持不同SNR设置,并增加了ILA在线数据采集和VIO在线SNR设置功能。通过硬件测试验证了系统在不同信噪比下的性能,提供了详细的模块原理及Verilog代码示例。开发板使用说明和移植方法也一并给出,确保用户能顺利在不同平台上复现该系统。
422 15
|
移动开发 前端开发 架构师
前端架构师需要具备什么能力以及代码能力?
【7月更文挑战第17天】 前端架构师是技术、领导与管理的融合,需精通HTML/CSS/JS及React/Vue等框架,擅长工程化、跨平台开发与安全。他们设计高效架构,优化性能,领导团队,做技术选型,并持续学习分享,确保代码质量和团队成长。
657 7
|
负载均衡 应用服务中间件 Linux
在Linux中,Nginx如何实现负载均衡分发策略?
在Linux中,Nginx如何实现负载均衡分发策略?
|
搜索推荐 数据管理 开发者
合同管理的高级流程设计|学习笔记
快速学习合同管理的高级流程设计
合同管理的高级流程设计|学习笔记
|
设计模式 消息中间件 NoSQL
空窗期太长?这么说就对了!
空窗期太长?这么说就对了!
436 0
|
前端开发 JavaScript API
打造在线教育平台:Python后端与Vue前端的完美融合
【4月更文挑战第10天】本文探讨了如何利用Python后端与Vue前端构建功能强大、用户体验良好的在线教育平台。通过Python的Django或Flask框架搭建稳定API服务,结合Vue.js的组件化和数据驱动特性创建高效用户界面。步骤包括确定平台需求、构建后端、创建前端、前后端交互、实现认证授权、优化体验以及测试部署。这种技术融合为在线教育市场提供了一个高效、可扩展的解决方案,适应未来教育平台的智能化、个性化和多元化趋势。
652 1
|
设计模式 前端开发 JavaScript
简述mvvm模式
简述mvvm模式
296 0