]> Git Repo - linux.git/commitdiff
docs: printk-formats: Stop encouraging use of unnecessary %h[xudi] and %hh[xudi]
authorJoe Perches <[email protected]>
Fri, 6 Sep 2019 21:11:51 +0000 (14:11 -0700)
committerJonathan Corbet <[email protected]>
Sat, 14 Sep 2019 07:57:43 +0000 (01:57 -0600)
Standard integer promotion is already done and %hx and %hhx is useless
so do not encourage the use of %hh[xudi] or %h[xudi].

As Linus said in:
https://lore.kernel.org/lkml/CAHk-=wgoxnmsj8GEVFJSvTwdnWm8wVJthefNk2n6+4TC=20e0Q@mail.gmail.com/

It's a pointless warning, making for more complex code, and
making people remember esoteric printf format details that have no
reason for existing.

The "h" and "hh" things should never be used. The only reason for them
being used if if you have an "int", but you want to print it out as a
"char" (and honestly, that is a really bad reason, you'd be better off
just using a proper cast to make the code more obvious).

So if what you have a "char" (or unsigned char) you should always just
print it out as an "int", knowing that the compiler already did the
proper type conversion.

Signed-off-by: Joe Perches <[email protected]>
Reviewed-by: Louis Taylor <[email protected]>
Signed-off-by: Jonathan Corbet <[email protected]>
Documentation/core-api/printk-formats.rst

index c6224d039bcbe98d7e05bb434a746772638993e0..ecbebf4ca8e7e74641ce6d0bf247a0e9aaade724 100644 (file)
@@ -13,10 +13,10 @@ Integer types
 
        If variable is of Type,         use printk format specifier:
        ------------------------------------------------------------
-               char                    %hhd or %hhx
-               unsigned char           %hhu or %hhx
-               short int               %hd or %hx
-               unsigned short int      %hu or %hx
+               char                    %d or %x
+               unsigned char           %u or %x
+               short int               %d or %x
+               unsigned short int      %u or %x
                int                     %d or %x
                unsigned int            %u or %x
                long                    %ld or %lx
@@ -25,10 +25,10 @@ Integer types
                unsigned long long      %llu or %llx
                size_t                  %zu or %zx
                ssize_t                 %zd or %zx
-               s8                      %hhd or %hhx
-               u8                      %hhu or %hhx
-               s16                     %hd or %hx
-               u16                     %hu or %hx
+               s8                      %d or %x
+               u8                      %u or %x
+               s16                     %d or %x
+               u16                     %u or %x
                s32                     %d or %x
                u32                     %u or %x
                s64                     %lld or %llx
This page took 0.066362 seconds and 4 git commands to generate.