如何使用GCC在C99中printf long long int
和 unsigned long long int
?
我搜索了其他建议使用 %lld
的帖子,但是它给出了这些警告:
警告#1:格式为[-Wformat] |的未知转换类型字符'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);
}
2 回答
如果你在windows上并使用mingw,gcc使用win32运行时,其中printf需要
%I64d
为64位整数 . (和%I64u
表示未定义的64位整数)对于大多数其他平台,您使用
%lld
进行长打印 . (和%llu
如果它是未签名的) . 这在C99中是标准化的 .gcc没有完整的C运行时,它遵循它运行的平台 - 所以一般情况下你需要查阅你的特定平台的文档 - 独立于gcc .
尝试更新你的编译器,我在Windows 7 Starter x86和MinGW上使用GCC 4.7,它在C99和C11中使用相同的选项进行编译 .