lkml.org 
[lkml]   [2008]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: How do I printk <type> correctly?
On Wed, 29 Oct 2008 10:00:04 +0200 Artem Bityutskiy wrote:

> On Tue, 2008-10-28 at 16:11 -0700, Randy Dunlap wrote:
> > On Thu, 23 Oct 2008 15:41:33 +0400 Alexey Dobriyan wrote:
> >
> > > If variable is of Type use printk format specifier.
> > > ---------------------------------------------------------
> > > int %d or %x
> > > unsigned int %u or %x
> > > long %ld ot %lx
> > > unsigned long %lu or %lx
> > > long long %lld or %llx
> > > unsigned long long %llu or %llx
> > > size_t %zu or %zx
> > > ssize_t %zd or %zx
> > >
> > > Raw pointer value SHOULD be printed with %p.
> > >
> > > u64 SHOULD be printed with %llu/%llx, (unsigned long long):
> > >
> > > printk("%llu", (unsigned long long)u64_var);
> > >
> > > s64 SHOULD be printed with %lld/%llx, (long long):
> > >
> > > printk("%lld", (long long)s64_var);
> > >
> > > If type is dependent on config option (sector_t), use format specifier
> > > of biggest type and explicitly cast to it.
> > >
> > > Reminder: sizeof() result is of type size_t.
>
> Do we have this somewhere in Documentation? Would be nice to have it.

It's in the C standard, which we don't try to put into Documentation/ AFAIK.

section 6.5.3.4, The sizeof operator:

4 The value of the result is implementation-defined, and its type (an unsigned integer type)
is size_t, defined in <stddef.h> (and other headers).


---
~Randy


\
 
 \ /
  Last update: 2008-10-29 16:37    [W:0.055 / U:0.440 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site