La diferencia entre __int64 y long long en ACM
La diferencia entre los dos radica en el nombramiento de diferentes patrocinadores y el diferente soporte de la plataforma. El tipo de datos long long lo inicia y admite la plataforma UNIX, mientras que __int64 lo inicia y admite Microsoft desde win95 (VC6). En plataformas de desarrollo de Windows antiguas (como VC6), Longlong no se reconoce y UNIX antiguo no reconoce _int64. Por supuesto, al utilizar plataformas relativamente nuevas, los dos formatos de datos y las definiciones y funciones asociadas son compatibles.
De manera similar, definir el formato de salida printf como un entero de 64 bits es lo mismo. Microsoft usa %i64d, mientras que UNIX usa %lld y %llu (64 bits sin firmar).
De hecho, no importa cuál sea, no hay diferencia en el efecto real. Es solo una cuestión de soporte o no soporte causado por el definidor y el entorno de uso.
En ACM, el sistema de reconocimiento del compilador prefiere admitir la definición de sistemas Microsoft, por lo que se deben utilizar __int64 y %i64d.