c语言错误:c语言中的错误处理



#<stdio.h>
#<jmp.h>

jmp_buf ebuf;
func;
{
i;
prf("1111\n");
i = jmp(ebuf);
prf("%d\n",i);
(i0){
func;
prf("this will not be pred");
}
(i3){
prf("3333\n");
}
prf("%d\n",i);
0;
}
func{
prf("2222\n");
longjmp(ebuf,3);
}

输出结果:
1111
0
2222
3
3333
3


相当和goto语句当执行func由longjmp跳转到jmp处然后再往下执行
注意地方:longjmp(dbufval)其中val不能为0如果为0则系统默认再i=jmp(ebuf)中i返回值为1;




以下实现了多个的间跳转其中具体代码在 动态链接库中
# <stdio.h>
# <windows.h>
# <jmp.h>

jmp_buf ebuf;
jump1;
jump2;
i;

{
i = jmp(ebuf);
(i0|i2){
jump1;
}
(i1){
jump2;
}
}
jump1{
while(1){
HINSTANCE hInstance;
void (*func);
hInstance = LoadLibrary("my.dll");

showGUI;
char s[10];
scanf("%s",&s);
func = ( void (*) )GetProcAddress(hInstance,s);
(!func){
longjmp(ebuf,1);
}
(*func);
continue;
}
}
jump2{
prf("your input is wrong\n");
longjmp(ebuf,2);
}
showGUI{
FILE *login;
char c;
login = fopen("login.txt","r");
(!login){
prf("file err:login\n");
;
}
while(1){
c = fgetc(login);
(c EOF){
;
}
prf("%c",c);
}
fclose(login);
0;
}
Tags:  图像处理c语言 c语言字符串处理 c语言常见错误 c语言错误

延伸阅读

最新评论

发表评论