printf long long int in C with GCC?

我如何使用GCC在C99中使用printf long long intunsigned long long int

我已经search了其他build议使用%lldpost,但是它给出了这些警告:

警告#1:格式为[-Wformat] |的未知转换types字符'l'
警告#2:格式参数太多[-Wformat-extra-args] |

对于以下尝试:

 #include <stdio.h> int main() { long long int x = 0; unsigned long long int y = 0; printf("%lld\n", x); printf("%llu\n", y); } 

如果你在windows上并使用mingw,gcc使用win32运行时,其中printf需要%I64d为64位整数。 (和非64位整数的%I64u

对于大多数其他平台,您可以使用%lld进行长时间的打印。 (如果没有签名,则%llu )。 这是在C99标准化。

gcc并没有提供完整的C运行时,它依赖于它运行的平台 – 所以一般情况下,你需要查阅你的特定平台的文档 – 独立于gcc。

试着更新你的编译器,我在Windows 7 Starter x86上用MinGW使用GCC 4.7,并且在C99和C11中使用相同的选项编译。

我的环境:
TDM-GCC
Windows 7 64位
C ++ 11(GNU ++ 11)

下面的代码不能通过。
的std ::的printf( “%LLD”,NUM);

最后这个头文件救了我。
包括“cstdint”