⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atol.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
/* @(#)atol.c	4.1 (Berkeley) 12/21/80 */#include <limits.h>#include <errno.h>longatol(p)register char *p;{        long maxover = LONG_MAX/10;  /* check for overflow */        long maxunder = LONG_MIN/10; /* check for underflow */        int errflg = 0;	long n;	register int f;	n = 0;	f = 0;	for(;;p++) {		switch(*p) {		case ' ':		case '\t':			continue;		case '-':			f++;		case '+':			p++;		}		break;	}	while(*p >= '0' && *p <= '9')        {                if(n > maxover || n < maxunder)                        errflg++;                n = n*10;                if(f)                {                        if(LONG_MIN + n > -(*p - '0'))                                errflg++;                }                else                        if(LONG_MAX - n < *p - '0')                                errflg++;                n += *p++ - '0';        }        if(errflg)        {                errno = ERANGE;                return(f ? LONG_MIN : LONG_MAX);        }        else                return(f? -n: n);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -