本文共 564 字,大约阅读时间需要 1 分钟。
这里有编写了很好的文章:,我自己试了一个小例子。
#include#include 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实现类似异常处理的功能。
转载地址:http://kyhbx.baihongyu.com/