Windows上%lld的问题

为什么这个代码:

#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)