tags:

views:

87

answers:

1

What are the format specifiers to use for printf when dealing with types such as int32_t, uint16_t and int8_t, etc.?

Using %d, %i, etc. will not result in a portable program. Is using the PRIxx macros the best approach?

+2  A: 

Is using the PRIxx macros the best approach?

As far as I know, yes.

Edit: another solution is to cast to a type that is at least as wide as the one you want to print. For example int is at least 2 bytes wide, to can print a int16_t with printf("%d\n", (int)some_var).

Bastien Léonard