有这么简单的C代码
#include <stdio.h>
#include <setjmp.h>
void Com_Error(int);
jmp_buf abortframe;
int main() {
if (setjmp (abortframe)){
printf("abortframe!\n");
return 0;
}
Com_Error(0);
printf("main end\n");
return 0;
}
void Com_Error(int code) {
// ...
longjmp (abortframe, code);
//...
}
Run Code Online (Sandbox Code Playgroud)
我越来越:
中止帧!
我的问题是为什么它会打印abortframe!if we pass 0(NOT ) ,因此不应该满足true条件,所以没有打印字符串?if (setjmp (abortframe)){...}abortframe!