strtof.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* Read decimal floating point numbers.
  2. This file is part of the GNU C Library.
  3. Copyright (C) 1995-2019 Free Software Foundation, Inc.
  4. Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
  5. The GNU C Library is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU Lesser General Public
  7. License as published by the Free Software Foundation; either
  8. version 2.1 of the License, or (at your option) any later version.
  9. The GNU C Library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. Lesser General Public License for more details.
  13. You should have received a copy of the GNU Lesser General Public
  14. License along with the GNU C Library; if not, see
  15. <http://www.gnu.org/licenses/>. */
  16. /* The actual implementation for all floating point sizes is in strtod.c.
  17. These macros tell it to produce the `float' version, `strtof'. */
  18. #include <bits/floatn.h>
  19. #if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
  20. # define strtof32 __hide_strtof32
  21. # define wcstof32 __hide_wcstof32
  22. #endif
  23. #define FLOAT float
  24. #define FLT FLT
  25. #ifdef USE_WIDE_CHAR
  26. #define STRTOF wcstof
  27. #define STRTOF_L __wcstof_l
  28. #else
  29. # define STRTOF strtof
  30. # define STRTOF_L __strtof_l
  31. #endif
  32. #include "strtod.c"
  33. #if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
  34. # undef strtof32
  35. # undef wcstof32
  36. # ifdef USE_WIDE_CHAR
  37. weak_alias (wcstof, wcstof32)
  38. # else
  39. weak_alias (strtof, strtof32)
  40. # endif
  41. #endif