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 impresas?
Lo intenté, %l
, %ld
, %ll
. Ninguno parece ser correcto.
Yo uso el comstackdor Diab C para comstackr el código de mi aplicación y ejecutarlo en el sistema operativo pSOS.
Según C99, debería ser “% lld” (ver, por ejemplo, aquí ). Si Diab C no es C99, entonces tendrías que mirar los documentos del comstackdor, que parece que no puedo encontrar en línea con un rápido Google.
Es "%lli"
(o equivalente "%lld"
)
Microsoft y Watcom usan %I64d
(ojo de capital), otros usan %lld
(ell minúscula).
Este e incluso poco más se ha descrito aquí: impresión multiplataforma de enteros de 64 bits con printf
TL; DR: Puede usar la macro PRId64 (desde inttypes.h) para imprimir enteros de 64 bits en decimal de manera semi-portátil. También hay otras macros (como PRIx64).
Tal vez% lld? Creo que este es el formato para gcc, no sé nada sobre el comstackdor Diab C.
Es% lld para firmado y% llu para no firmado
long long t1; //signed unsigned long long t2; //unsigned printf("%lld",t1); printf("%llu",t2);