Messages in this thread | | | From | David Laight <> | Subject | RE: Use of '%#02x' is almost always wrong | Date | Thu, 14 Oct 2021 08:27:17 +0000 |
| |
From: Bernd Petrovitsch > Sent: 14 October 2021 00:16 > > On 12/10/2021 23:10, David Laight wrote: > [...] > >> So presumably all the uses of %#02x in the kernel are not outputting > >> what is actually expected. Perhaps all of these should use %#04x. > > > > Doesn't help. The definition of "%#x" is completely broken. > > Seconded ... > > > Basically 0 doesn't get the "0x" prefix, so "%#04x" outputs > > "0000". > > ... just because of that. > And if one get's in touch with tools where format strings are > the % -stuff is not consistently used ... > > > "0000" if the value is zero. > > So the correct replacement is (probably) "0x%02x". > > At least it's consistent that way. > > And in the big techie picture, I don't see what the '#' modifer > buys and why it makes sense to use it.
It works for "%#8x" where it add the "0x" to the right-aligned hex digits.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |