NSInteger and NSUInteger also have the advantage of having the same @encode() on 32-bit and 64-bit, which can be important for binary compatibility of archives and IPC between architectures, depending on how you do it.
-- Chris On Jul 2, 2012, at 8:58 AM, Jens Alfke <j...@mooseyard.com> wrote: > > On Jul 2, 2012, at 4:24 AM, Andreas Grosam wrote: > >> Anyway, is it preferable to use always Cocoa macros (NSInteger, NSUInteger, >> etc.) for an Objective-C API - or may/should I use int, unsigned int, or >> maybe int32_t, uint32_t, etc. when it seems more appropriate? > > Sure, use smaller types if it's appropriate. But consider first whether the > size savings are worthwhile (keeping in mind C's data alignment and struct > packing rules.) > > I'm not a big fan of NSInteger/NSUInteger because they have the very annoying > property of being different sizes in 32 vs 64 bit builds (one consequence is > that there is no '%' formatting specifier that works correctly with them.) > But if your API represents things like collection sizes or array indexes, > it's best to play along and use those types. > > ―Jens > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/cmh%40me.com > > This email sent to c...@me.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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com