我将64位计数器的变量声明为:
long long call_count;
我应该在print语句中使用什么格式说明符?
我试过,%l
,%ld
,%ll
。没有一个是正确的。
我使用Diab C编译器编译我的应用程序代码以在pSOS操作系统上运行。
答案 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);