Printf format <inttypes.h>
Concepts:
Use of the function printf to format the output of variables with fixed dimension, as defined in the <inttypes.h> library.
The <inttypes.h> library allows the definition of variables with a fixed dimension in terms of number of occupied bits. For instance, the type uint64_t declares an unsigned integer variable with dimension 64 bits, and the int64_t can be used to declare a signed integer variable with dimension 64 bits. Other possible types of the library are: uint32_t, int32_t, unit16_t, int16_t, uint8_t and int8_t.
For printing uint32_t, int32_t, unit16_t, int16_t, uint8_t and int8_t the typical %u and %d operators of the printf function can be used, instead, to print uint64_t or int64_t we have to make use of specific macros defined in <inttypes.h>. See the example.
Example:
- inttypes.c
/* Example of use of the function printf to format the output of variables with fixed dimension, as defined in the ''<inttypes.h>'' library */ #include <stdio.h> #include <inttypes.h> int main() { int64_t a = -3; uint64_t b = 3; int8_t c = -3; printf("a=%" PRId64 " b=%" PRIu64 " c=%d\n", a, b, c); return 0; }
Comment:
As can be see in the example, the macros PRId64 and PRIu64 can be used to print int64_t and uint64_t, respectively.
Macro PRIx64 can also be used to print hexadecimal.
If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it
You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/cs/c_language/printf_format_inttypes.h
