If C had had a decent macro system then printf would've been a macro that expanded to the appropriate series of x -> string conversions and puts statements and we wouldn't have this (admittedly nearly always minor) problem.
plan 9 printf is unbloated, you could take that. the reason most printfs are bloated is because of support for locales which involves global locking and table lookups.
Name:
Anonymous2011-07-31 21:11
I think newlib printf is pretty lightweight too. If you decide to take floating point support out it's usually pretty tiny.
gcc doesn't optimize calls to printf when the format string contains `%' and is anything else than ``%c'' or ``%s\n''. So, for instance, it will not perform concatenation at compile-time for printf("%s %s\n%s\n", "Hello,", "/prog/!", "^_^").
That's terrible.