如何使用GCC在C99中打印flong-long-int
和unsigned-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);
}
尝试更新您的编译器,我在Windows7Starterx86上使用了GCC4.7和MinGW,它在C99和C11中使用相同的选项可以很好地编译。
对于可移植代码,inttypes中的宏是。可以使用h。它们扩展到平台的正确位置。
例如,对于64位整数,可以使用宏PRId64
。
int64_t n = 7;
printf("n is %" PRId64 "\n", n);
如果您在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_