Почему этот код:
#include <stdio.h> int main(int argc, char** argv) { printf("%lld\n", 4294967296LL); }
испустить это для Windows:
0
но это для Linux:
4294967296
Это потому, что Visual Studio C ++ 2003 и более ранние версии не поддерживают% lld. Но этот код будет работать:
#include <stdio.h> int main(int argc, char** argv) { printf("%I64d\n", 4294967296LL); }
Спецификация размера и расстояния (Visual Studio C ++ 2003)
Спецификация размера и расстояния (Visual Studio C ++ 2005)