It's not possible to have a single function do this. Not possible to have any finite number of functions do this if, like me, you want to support all floating-point and integer types.
Self-contained routines that are completely unmaintainable and unintelligible to anyone but you, though.
All of my macros are intelligible to anyone who understands the C preprocessor.
More to the point, why do they need to be maintainable? When was the last time you maintained the strtof function in your C library?