One of the main features of C is interchangable int and void*.
Huh? Win32 certainly made that assumption, passing pointers around in DWORDs, but there's never been any guarantee of it in the language. I happen to agree that 64 bit platforms should have made int 64 bits, but in terms of "biting the bullet", Alpha, SPARC64 and all of the other platforms mentioned elsewhere here have already gotten most of the job done for the *NIX world. If you're on Windows, there's probably more of a problem, but that has more to do with design decisions made in Win32 (and a less degree, Win64) than C.