首页 文章

Printf long long int in C with GCC?

提问于
浏览
43

如何使用GCC在C99中printf long long intunsigned 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 回答

  • 3

    如果你在windows上并使用mingw,gcc使用win32运行时,其中printf需要 %I64d 为64位整数 . (和 %I64u 表示未定义的64位整数)

    对于大多数其他平台,您使用 %lld 进行长打印 . (和 %llu 如果它是未签名的) . 这在C99中是标准化的 .

    gcc没有完整的C运行时,它遵循它运行的平台 - 所以一般情况下你需要查阅你的特定平台的文档 - 独立于gcc .

  • 56

    尝试更新你的编译器,我在Windows 7 Starter x86和MinGW上使用GCC 4.7,它在C99和C11中使用相同的选项进行编译 .

相关问题