36 #define LLONG_MAX 0x7FFFFFFFFFFFFFFFLL 37 #define LLONG_MIN (-0x7FFFFFFFFFFFFFFFLL - 1) 47 strtoll(
const char * __restrict nptr,
char ** __restrict endptr,
int base)
50 unsigned long long acc;
52 unsigned long long cutoff;
63 }
while (isspace((
unsigned char)c));
72 if ((base == 0 || base == 16) &&
73 c ==
'0' && (*s ==
'x' || *s ==
'X') &&
74 ((s[1] >=
'0' && s[1] <=
'9') ||
75 (s[1] >=
'A' && s[1] <=
'F') ||
76 (s[1] >=
'a' && s[1] <=
'f'))) {
82 base = c ==
'0' ? 8 : 10;
84 if (base < 2 || base > 36)
107 cutlim = cutoff %
base;
109 for ( ; ; c = *s++) {
110 if (c >=
'0' && c <=
'9')
112 else if (c >=
'A' && c <=
'Z')
114 else if (c >=
'a' && c <=
'z')
120 if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
137 *endptr = (
char *)(any ? s - 1 : nptr);
long long strtoll(const char *__restrict nptr, char **__restrict endptr, int base)