As I can see, Windows is a weird game for the entire x64 transition. But putting it aside, C or C ++ never defined fixed lengths of integral types. I believe that everything int / long / pointer is understandable if you look at it this way:
int: basically 32 bits long (Linux, Mac and Windows) long: 64 bits on Mac and Linux, 32 on Windows long long: 64 bits on Mac, Linux and Windows x64 (u) intptr_t: exact pointer length (32 on 32-bit, 64 on 64-bit systems)
I use only char in the context of strings and never use short ones, as long as int is on most desktop systems anyway.
WORD and DWORD are ugly and should be avoided. If the API forces you to use them, replace DWORD with DWORD_PTR when you are dealing with ... well, pointers. It was never right to use (D) WORD there, primarily IMHO.
I do not think that Windows will change this decision, ever. Too many problems already
Why is everything else left? Why does Venus rotate in the opposite direction? The answer to the first question is found here (I think), the second is a bit more complicated;)
rubenvb
source share