'long long'的格式说明符

时间:2009-01-20 17:52:18

标签: c

我将64位计数器的变量声明为:

long long call_count;

我应该在print语句中使用什么格式说明符?

我试过,%l%ld%ll。没有一个是正确的。

我使用Diab C编译器编译我的应用程序代码以在pSOS操作系统上运行。

7 个答案:

答案 0 :(得分:58)

根据C99,它应该是“%lld”(例如,参见here)。如果Diab C不是C99,那么你必须查看编译器文档,我似乎无法通过快速谷歌搜索在线找到。

答案 1 :(得分:15)

它是"%lli"(或等效"%lld"

答案 2 :(得分:11)

Microsoft和Watcom使用%I64d(大眼睛),其他人使用%lld(小写椭圆)。

答案 3 :(得分:5)

这里有一个甚至更多的内容在这里描述: cross-platform printing of 64-bit integers with printf

TL; DR: 您可以使用PRId64宏(来自inttypes.h)以半便携方式打印十进制的64位整数。还有其他宏(如PRIx64)。

答案 4 :(得分:2)

也许%lld?我认为这是gcc的格式,对Diab C编译器一无所知。

答案 5 :(得分:1)

签名的%lld和未签名的%llu

答案 6 :(得分:0)

long long t1;             //signed
unsigned long long t2;    //unsigned

printf("%lld",t1);
printf("%llu",t2);