I want to recommend the use of <inttypes.h>
to someone doing printf
with mixed 32/64 bit builds. I tried to Google an introduction or tutorial page with a few examples and usage guidelines, but I couldn't find one.
Can someone recommend an introduction or tutorial for <inttypes.h>
?
Try http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html for a start.
A better example of how to use the new portable formatting macros was found in avr-libc. I've included an example (from the link) to illustrate. QNX libraries also have a better human-readable description (if you don't like reading the specification cold), although you have to scroll nearly to the end of the page to get to the meat of the descriptions.
#include <inttypes.h>
uint8_t smallval;
int32_t longval;
...
printf("The hexadecimal value of smallval is %" PRIx8
", the decimal value of longval is %" PRId32 ".\n",
smallval, longval);
Note that this uses the "String" "String" implied concatenation operator to yield the string (in this example)
"The hexadecimal value of smallval is %x, the decimal value of longval is %ld.\n"
An attempt to decompose the naming convention seems to indicate:
so PRIx8
means printf format instruction to format to hexadecimal eight bits.