# kprintf It is just my variant of printf. # kprint I don't really like printf function (and its variants), so i made safer and more convinient replacement. | function | returns | arguments | |----------|---------|-----------| | kprint | void/throw | kprint_format, void*, kprint_format, void*... | | ksprint | Maybe | kprint_format, void*, kprint_format, void*... | | kfprint | Maybe | FILE*, kprint_format, void*, kprint_format, void*... | ## how to use it: + **format construction:** ``` kprint_format fmt= kprint_fgColor | kprint_bgColor | kprint_fdataFmt | flags | ktid; ``` [more about `kprint_format`](kprint_format.md) + fgColor and bgColor can be set to change console output color + you should set dataFormat for `int`/`uint`/`float`/`char*` arguments and ktid for other types + flags can be set to modify TypeDescriptor.toString() behavior + don't forget to set TypeDescriptor.toString when registering type, or kprint will crash + **using base type arguments:** you can just put them into a function ``` kprint(kprint_fmtHex | kprint_fmtUppercase | kprint_fmtWithPrefix, 255); ``` output: 0xFF + **using other registered types:** should be sent as pointers ``` Maybe m=MaybeNull; kprint(kprint_fgBlue | kprint_fmtString, "Maybe: ", kprint_fgGreen | ktid_MaybePtr, &m); ``` output: Maybe: {value={0, ktid_Null}}