>> All the world is no longer a 32-bit 386. > >True, but the pain of the PDP-11-to-VAX migration, when `int' changed >from 16 bits to 32, seems to have convinced the standards >organisations that they don't want to change the sizes of any integral >types. The proposed sizes for 64-bit implementations (in `LLP64') >are: 32 bits for int and long, 64 for long long and pointers. And >ANSI & POSIX will continue to paper over size differences with *_t >types. > >I'd prefer 64-bit longs and no long longs (or 128-bit long longs), but >that seems unlikely given the vast existing corpus of code written >without much attention to types.
Wow, you're a little out of date. The *BSDs and Linux did the Right Thing: on Alpha and AMD64 (the two flavors of which I have personal knowledge) "long" is 64 bits. So the vast corpus of software that has been ported to 64-bit *BSD and Linux systems is now free of the assumption that sizeof (int) == sizeof (long). There is still a pervasive assumption that ints are 32 bits.
