当前位置: 代码迷 >> C语言 >> 请看此代码,输出结果是什么?
  详细解决方案

请看此代码,输出结果是什么?

热度:145   发布时间:2008-04-01 19:50:36.0
请看此代码,输出结果是什么?
#include "setjmp.h"
#include "stdio.h"
jmp_buf buf;
void main()
{
  int i=5,set=5;
  i++;
  set=setjmp(buf);
  printf("set=%d\n",set);
  i++;
  if(set==0)
    longjmp(buf,set);
  printf("i=%d,set=%d\n",i,set);
}
搜索更多相关的解决方案: set  buf  代码  结果  输出  

----------------解决方案--------------------------------------------------------
结果
set=0
set=1
i=7,set=1
----------------解决方案--------------------------------------------------------
为什么set=1?
我的结果也是。
我的意思是:为什么longjmp(buf,set);执行后set的值会变成1,这样有什么意义?
我原来以为不同的环境下set的值会有所不同,原来都是一样。
----------------解决方案--------------------------------------------------------
不同的编译器,结果也不同。
换了vc,这次i的值输出8.
----------------解决方案--------------------------------------------------------
  相关解决方案