[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: multiple string tokens
From: |
David Chisnall |
Subject: |
Re: multiple string tokens |
Date: |
Wed, 17 Aug 2011 19:39:50 +0100 |
On 17 Aug 2011, at 19:36, Eric Wasylishen wrote:
> Hey,
>
> I don't like using PRIdPTR because it took me a while to figure out why it
> works
It's pretty simple: PRI (printf format string), character for int, PTR (pointer
type).
> (I had to look up that it's a format string for intptr_t, and then check the
> NSInteger definition to verify that that is also intptr_t…), and PRIdPTR
> introduces a dependency on how NSInteger is defined everywhere you use it.
NS[U]Integer is defined as a pointer sized integer, anywhere that it is
defined. There is no extra dependency: the definition of the type is a
pointer-sized integer, so the correct format specifier is the relevant one for
a pointer-sized integer.
> Personally I always cast NSInteger/CGFloat to a c89 type when I need to print
> them, since it will work on any Foundation implementation. Anyway, we just
> have to make sure we never have (@"foo: %f", someCGFloat) or (@"foo: %d",
> someNSInteger)!
Casting to long long / unsigned long long will also work, as will casting
CGFloat to double.
David
--
This email complies with ISO 3103