The library actually implements functions tfp_printf and tfp_sprintf and declared two macros, printf and sprintf, that expand to the names of the library functions. Now, I know, this sort of non function style macro usage, especially with lower case names, can be evil. A better/cleaner solution would have been the use of variadic macros but for reasons lost in the dusk of history I did not. Feel free to modify either the macros or the function names.
To conserve space the library does not support printing long ints unless you define the macro PRINTF_LONG_SUPPORT. To support long the compiler will pull the 32 bit math libraries (assuming long is 32 bits here) and this will greatly increase the memory footprint. When debugging, especially when bringing up a board, space can be at premium, yet, if you are working with a 16/32 bit processor you may need to print 32 bit hex values. You can do that, without enablind the long support as follows:
long v=0xDEADBEEF;
printf("v=%04X%04X\n", v >> 16, v & 0xffff); // actually the '& 0xffff' is propably superfluous if int is 16 bits
This should output:
v=DEADBEEF