On 05/06/2013 07:11 AM, JimJoyce wrote: > Am I 'out of date' and 'out of touch'? > Machines and compilers have grown in size since Ritchie's day > When I check sizeof(short), sizeof(int) and sizeof(long) on my machine I get > 2, 2, 4. > Yet my machine is a 64bit one. Is that its 'natural' size. Should not my int > be 8 bytes ?? > Should C and C++ compilers be re-defining shorts, ints and longs? I'm not a compiler guy but I do a lot of low level programming where the object size is important. In general, the int, float, etc notation has been displaced by the _t notation. That is if you want an 8 bit signed object you declare it int8_t foo. A 16 bit unsigned object would be uint16_t foo It is the responsibility of the compiler writer to convert these into the target machine's object sizes. For example, the ARM GNU C cross-compiler I'm currently working with, the int8_t is typedef'ed as a char. Look in <sys/types.h> for all the typedefs. This is also discussed in the GNU C standard library manual. John -- John DeArmond Tellico Plains, Occupied TN http://www.fluxeon.com <-- THE source for induction heaters http://www.neon-john.com <-- email from here http://www.johndearmond.com <-- Best damned Blog on the net PGP key: wwwkeys.pgp.net: BCB68D77