On Mon, Mar 8, 2010 at 2:16 PM, Ed Wynne <ar...@phasic.com> wrote: > > On Mar 8, 2010, at 4:55 PM, Nick Zitzmann wrote: >> >> On Mar 7, 2010, at 5:07 PM, Marx Bievor wrote: >> >>> I can substitute a String with %@ and an int with %d... like in return >>> @"Hi I am %@ and %d years old", name, age; >>> what is the right command to substitute a bool and a float? I cannot find >>> any reference at apple's docs. >> >> You generally want to use %f for floats and doubles. An ObjC BOOL is a >> signed 8-bit character type, so %hhd ought to work. > > A much better and future-proof (translation: more paranoid) strategy with > printf-style format strings, as used by NSString, is to explicitly upcast > integer parameters to known compatible types.
For types smaller than int, there is no need to explicitly cast; the standard guarantees that such values are converted to int (or unsigned int) implicitly. In fact, the 'h' and 'hh' modifiers are completely redundant and are ignored when passed to printf-like functions (their only real use is in scanf). Given: char c = ...; All of the following are identical: printf("%hhd", c); printf("%hd", c); printf("%d", c); -- Clark S. Cox III clarkc...@gmail.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com