当前位置: 首页 > 知识库问答 >
问题:

用GCC在C中打印长整型?

堵茂勋
2023-03-14

如何使用GCC在C99中打印flong-long-intunsigned-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);
}

共有3个答案

索瀚海
2023-03-14

尝试更新您的编译器,我在Windows7Starterx86上使用了GCC4.7和MinGW,它在C99和C11中使用相同的选项可以很好地编译。

文英达
2023-03-14

对于可移植代码,inttypes中的宏是。可以使用h。它们扩展到平台的正确位置。

例如,对于64位整数,可以使用宏PRId64

int64_t n = 7;
printf("n is %" PRId64 "\n", n);
隆康平
2023-03-14

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

对于大多数其他平台,您将使用%lld来打印很长的内容。(如果没有签名,则使用%llu)。这在C99中是标准化的。

gcc并不附带完整的C运行时,它依赖于运行它的平台——因此一般情况下,您需要参考特定平台的文档——独立于gcc

 类似资料:
  • 我有一台爱普生热敏打印机,现在我要打印一些足够长的收据,我使用爱普生提供的代码样本。代码如下所示,现在的问题是,当收据超过一定长度(约30cm)时,打印机会停止并剪切收据,如下图所示。我如何打印长收据没有自动剪切。

  • 我尝试使用PrintTicket对象(Microsoft)设置订书钉属性,但它不起作用。我已验证是否安装了正确的打印驱动程序。当我手动打印时,我能够钉上打印输出,所以我确信打印机支持它。 我编辑了这篇文章以包含完整的代码。我在这里使用的PDF库是pdfiumviewer。我没有检查这段代码中的返回值,但如果我运行它,得到的返回值给我“ConflictStatus.ConflictResolved”

  • 例子 $ gcc -### foo.c Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgvers

  • 问题内容: 我正在尝试编写一个小程序,该程序在数组中打印出不同的数字。例如,如果用户输入1,1,3,5,7,4,3,则该程序将仅打印出1,3,5,7,4。 我在else if函数中遇到错误。 到目前为止,这是我的代码: 问题答案: 首先,“ ”语句是不正确的,因为您没有为if提供任何条件(如果需要if,则需要编写“ ”)。 其次,您不能 在内部 循环中决定是否应打印一个值:代码的工作方式是 为每个

  • 问题内容: 我想读取捕获的异常的完整堆栈跟踪。 例如: 我想阅读“ … 23更多”,以了解异常的来源。 问题答案: 答案很简单,这些行已经在stacktrace中了:) 基本上,以下情况正在发生:

  • 例子 [root@linux:~]$ gcc -dM -E - < /dev/null #define __DBL_MIN_EXP__ (-1021) #define __FLT_MIN__ 1.17549435e-38F #define __CHAR_BIT__ 8 #define __WCHAR_MAX__ 2147483647 #define __GCC_HAVE_SYNC_COMPARE_