【发布时间】:2011-06-09 20:49:18
【问题描述】:
在 Windows 中,它是“%I64d”。在 Linux 和 Solaris 中,它是“%lld”。
如果我想编写打印long long 值的跨平台printfs:这样做的好方法是什么?
long long ll;
printf(???, ll);
【问题讨论】:
-
显然我需要#if defined(WIN32) && !defined(PRId64) \n #define PRId64 "I64d" \n #endif.感谢所有回答的人。
-
您还应该查看您的类型,如果它们不可用,请使用
typedef替换[u]int64_t。 -
64位整数和长整数有什么区别?我正在阅读其他人的程序,他们使用 PRId64,我不明白。