setjmp和longjmp和goto一样,尽量避免用。一般goto只能在本地c文件使用,setjmp和longjmp可以在整个程序中使用,具体介绍用法如下:
首先需要包含头文件#include <setjmp.h>
一、setjmp
1、setjmp( jump_buf j )必须首先被调用,它表示“使用变量j记录现在的位置,函数返回零”;
二、longjmp
longjmp( jump_buf j, int i )可以接着被调用。它表示“回到 j 所记录的位置,让它看上起像是从原先的setjmp() 函数返回一样,函数返回i, 使代码能够知道实际上是通过longjmp返回的”,当使用longjmp时,j的内容被销毁。
可以用这两个函数自己实现看门狗复位功能!