37 lines
2.0 KiB
Markdown
37 lines
2.0 KiB
Markdown
# 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](https://github.com/epagris)
|