2009-01-20 67 views
35

我宣布了64位计数器作为变量:格式说明为“长长”

long long call_count; 

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

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

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

回答

52

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

14

这是"%lli"(或等价"%lld"

2

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

+3

%lld是长时间的标准转换说明符,Windows是我知道的不支持这种方法的唯一一个(但它们不支持很多标准)。此外,这是特定于正在使用的标准C库,而不是编译器。 – 2009-01-20 18:17:20

9

Microsoft和Watcom使用%I64d(首都眼),其他使用%lld(小写字母)。

+0

“使用%I64d(大写I)”:再试一次? – 2009-01-20 18:05:06

+5

Microsoft长时间使用ll(ell ell); I64(眼睛)为__int64。 http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx – 2009-01-20 20:22:16

1

这是签署并%LLU%LLD无符号

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

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