On Sat, 2021-05-29 at 00:16 +0300, Andy Shevchenko wrote: > On Saturday, May 29, 2021, Joe Perches <joe@xxxxxxxxxxx> wrote: [] > > > > Likely these should be 0x%02x > > > > > > What’s the difference (except printing 0)? > > > > (assuming the argument is unsigned char/u8) > > > > %#02x will always emit more than the specified length (3 or 4 chars) > > values < 16 are 0x<hexdigit>, values >= 16 are 0x<hexdigit><hexdigit> > > 0 will be 0, btw. Hey Andy. Right. > > 0x%02x will always emit 4 chars > > *Minimum* or at least 4 characters. There is an upper limit of sizeof(int) > * 2 + 2. I did write assuming the argument is unsigned char/u8. For the general unsigned int arg case, you are of course correct.