"The answer is ""it depends"". Windows for example - assuming we're talking about x64 and in order to preserve compatibility with 32 bit software - will retain 32 bits for integers and longs but switch to 64 bits for pointers (http://software.intel.com/en-us/articles/porting-to-64-bit-intel-architecture/). What this means is that only pointers will have additional storage requirements (and that only in native 64 bit applications), whereas code which uses int and long will have no additional overhead. You'll end up having much less additional overhead than you think you might have. Having said that, more memory never hurts, particularly in 64 bit land.
Other OSs and architectures may differ, of course."