printf long long int in C with GCC?
我如何使用GCC在C99中使用printf long long int
和unsigned long long int
?
我已经search了其他build议使用%lld
post,但是它给出了这些警告:
警告#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”
- 有没有在fd_set(select()或pselect())上使用结构拷贝导致问题的平台?
- 为什么我可以在复制构造函数中访问私有variables?
- 确保HttpConfiguration.EnsureInitialized()
- 如何在全球范围内告诉Json.Net将StringEnumConverter应用于所有的枚举
- string比较:InvariantCultureIgnoreCase与OrdinalIgnoreCase?
- .NET中的“obj”目录是什么?
- 为什么我应该避免在C ++中的多重inheritance?
- Roslyn无法编译代码
- 你能否通过保证multithreading不能访问相同的内存来避免locking?