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