On Fri, Jun 25, 2010 at 08:40:26PM +0000, Christos Zoulas wrote:
> In article <20100625183016.ac0be17...@cvs.netbsd.org>,
> Alistair G. Crooks <source-changes-d@NetBSD.org> wrote:
> >-=-=-=-=-=-
> >
> >Module Name: src
> >Committed By:        agc
> >Date:                Fri Jun 25 18:30:16 UTC 2010
> >
> >Modified Files:
> >     src/crypto/external/bsd/netpgp/dist/src/lib: misc.c
> >
> >Log Message:
> >Fix build problems on LP64 platforms - thanks to Paul Goyette for the nudge.
> 
> That should be %zu really; it is more readable.

%zu is more readble, but it's C99, and even some C99 implementations
don't define it (I have in my mind Microsoft from the time that I brought
up the iSCSI target on Windows, but I may be wrong there)

The following quote is apt:

        C99 adds a 'z' modifier specifically for size_t:

        printf("Total buffer size: %zu bytes\n", buffer_size);

        but many printf implementations don't support it. (Even if your
        compiler supports C99 and defines __STDC_VERSION__ appropriately,
        that's not, practically speaking, a guarantee that the library also
        conforms to C99.)

        Even in C99, the "%lu" method will work unless size_t is bigger than
        unsigned long *and* the value being printed exceeds ULONG_MAX, which
        is unlikely to happen in practice.

        --
        Keith Thompson (The_Other_Keith) ks...@mib.org 
<http://www.ghoti.net/~kst>
        San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>

referenced in:

        
http://bytes.com/topic/c/answers/221867-portable-way-printf-size_t-instance

Oh, and yes, this is not a "we need to conform to c89 as LCD" post -
this is 2010 after all - it's an "I want netpgp to be as portable as
possible" post.

Regards,
Alistair

Reply via email to