格式说明符为'long long'

我声明一个64位计数器的variables为:

long long call_count; 

打印语句中应该使用的格式说明符是什么?

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

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

根据C99,它应该是“%lld”(例如,见这里 )。 如果Diab C不是C99,那么你必须看看编译器文档,我似乎无法在网上find一个快速的谷歌search。

这是"%lli" (或等同于"%lld"

微软和Watcom使用%I64d (capital eye),其他使用%lld (小写字母)。

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

这一点,甚至更多的描述在这里: 用printf跨平台打印64位整数

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

是不是应该是%lld?

它是%lld的签名和%llu的无符号

 long long t1; //signed unsigned long long t2; //unsigned printf("%lld",t1); printf("%llu",t2);