> But that doesn't work for 64-bit machines - many 64-bit systems have a int that is 32-bit,
> and a long that is 64-bit. Or both being 32-bit.
But is that more for transitional reasons to prevent breakage of existing code, and still claim "64-bit" on the box?

Though with only 2 widths to play with (16 or 32), int had to be the same as either short or long. But with 16/32/64, the compiler writers now have the freedom to make distinct choices.