_matherr.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 34 行
C
34 行
#include <stdio.h>
#include <math.h>
extern void __set_EDOM();
extern void __set_ERANGE();
extern int __matherr( struct exception * );
#pragma aux __matherr "*";
static char *Msgs[] = {
0,
"Domain error",
"Argument singularity",
"Overflow range error",
"Underflow range error",
"Total loss of significance",
"Partial loss of significance"
};
int (*__MathErrRtn)( struct exception * ) = __matherr; /* 24-mar-91 */
double _matherr( struct _exception *excp )
/***************************************/
{
if( (*__MathErrRtn)( excp ) == 0 ) {
/* fprintf( stderr, "%s in %s\n", Msgs[excp->type], excp->name ); */
fputs( Msgs[excp->type], stderr );
fputs( " in ", stderr );
fputs( excp->name, stderr );
fputc( '\n', stderr );
excp->type == DOMAIN ? __set_EDOM() : __set_ERANGE();
}
return( excp->retval );
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?