EmbFmt
A lightweight formatted printer (printf()
) implementation for embedded systems with CMake support.
Formatting codes
The library supports the following type designators:
Designator | Type | Description |
---|---|---|
%c |
char |
Character |
%s |
char * |
Null-terminated string |
%d , %i |
int |
Signed decimal integer |
%u |
unsigned int |
Unsigned decimal integer |
%x , %p /%X |
unsigned int |
Unsigned hexadecimal integer with lowercase/UPPERcase digits |
%f /%k |
double |
Floating point with rounding/truncation |
%e |
double |
Floating point using scientific notation |
%% |
- | '%' character |
Length modifier
By default, 32-bit integers are assumed (e.g.: %u
- uint32_t
), the l
modifier always extends integer fields to 64 bits (e.g. %lu
- uint64_t
).
Precision modifier
The library supports the precision modifiers, e.g. %.4f
- four digits in the fractional part. The least significant digit is either determined by rounding (%.3f
: 1.2345 -> 1.235), or by truncation (%.3k
: 1.2345 -> 1.234).
Leading digits
The library provides support for specifying the number and the type of leading character for numerical fields. The filling characters can be either 0
or spaces. (e.g. %05u
: 12 -> 00012, % 5u
: 12 -> ␣␣␣12)
The length of a field can be also passed as a parameter with the *
modifier.
License
The EmbFmt library has been released under the MIT License. Developer and main contributor: Epagris