4 #include "stdio_impl.h"
6 static long double strtox(const char *s
, char **p
, int prec
)
11 long double y
= __floatscan(&f
, prec
, 1);
12 off_t cnt
= shcnt(&f
);
13 if (p
) *p
= cnt
? (char *)s
+ cnt
: (char *)s
;
17 float strtof(const char *restrict s
, char **restrict p
)
19 return strtox(s
, p
, 0);
22 double strtod(const char *restrict s
, char **restrict p
)
24 return strtox(s
, p
, 1);
27 long double strtold(const char *restrict s
, char **restrict p
)
29 return strtox(s
, p
, 2);
32 weak_alias(strtof
, strtof_l
);
33 weak_alias(strtod
, strtod_l
);
34 weak_alias(strtold
, strtold_l
);
35 weak_alias(strtof
, __strtof_l
);
36 weak_alias(strtod
, __strtod_l
);
37 weak_alias(strtold
, __strtold_l
);