Windows上%lld的问题

Jar*_*aus 6 c windows

为什么这段代码:

#include <stdio.h>

int main(int argc, char** argv) {
    printf("%lld\n", 4294967296LL);
}
Run Code Online (Sandbox Code Playgroud)

为Windows发出此信息:

0
Run Code Online (Sandbox Code Playgroud)

但这适用于Linux:

4294967296
Run Code Online (Sandbox Code Playgroud)

Jar*_*aus 12

这是因为Visual Studio C++ 2003及更早版本不支持%lld.但是这段代码可以工作:

#include <stdio.h>

int main(int argc, char** argv) {
    printf("%I64d\n", 4294967296LL);
}
Run Code Online (Sandbox Code Playgroud)

大小和距离规范(Visual Studio C++ 2003)

大小和距离规范(Visual Studio C++ 2005)