Yeah, but if you absolutely NEED 64 bits, then you pretty well have to use __int64. The implementation will define it as needed for the platform. On a 64-bit platform it will simply be an int. On some 32-bit platforms it may be a long, while on others it is a long long.
If you absolutely need a 64-bit integer, you might as well #include <stdint.h> (which more compilers support than __int64, AFAIK) and use int64_t.
Another solution is to define your own types based on the compiler using #ifdef and compiler macro definitions.