que - Especificador de formato para ''long long''
que es un especificador de formato en programacion (7)
De acuerdo con C99, debería ser "% lld" (ver, por ejemplo, aquí ). Si Diab C no es C99, entonces tendrías que mirar los documentos del compilador, que no puedo encontrar en línea con un Google rápido.
Declaro una variable para un contador de 64 bits como:
long long call_count;
¿Cuál es el especificador de formato que debo usar en las declaraciones de impresión?
Intenté, %l
, %ld
, %ll
. Ninguno parece ser correcto.
Utilizo el compilador Diab C para compilar el código de mi aplicación para ejecutarlo en el sistema operativo pSOS.
Es "%lli"
(o equivalentemente "%lld"
)
Quizás% lld? Creo que este es el formato para gcc, no sé nada sobre el compilador Diab C.
Es% lld para firmado y% llu para unsigned
Microsoft y Watcom usan %I64d
(ojo de capital), otros usan %lld
(ell ell %lld
).
Aquí e incluso un poco más se ha descrito aquí: impresión multiplataforma de enteros de 64 bits con printf
TL; DR: puede usar la macro PRId64 (de inttypes.h) para imprimir enteros de 64 bits en decimal de una manera semi-portátil. También hay otras macros (como PRIx64).
long long t1; //signed
unsigned long long t2; //unsigned
printf("%lld",t1);
printf("%llu",t2);