Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

519
Vistas
format '%lld' expects type 'long long int', but argument 4 has type 'int64_t'

I try to print a variable of type int64_t using %lld format specifier but get the following warning?

Warning: format '%lld' expects type 'long long int', but argument 4 has type 'int64_t'

In my opinion, under linux, the int64_t is always long long int, then:

  1. Why does this warning occur?
  2. How can I fix this?
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

how to fix?

Use PRId64: (Don't forget to include <inttypes.h>)

printf("var64 = %" PRId64 "\n", var64);

Use PRIx64 and proper cast if you want to print it as hex.

int64_t is always long long int, then why does this warning occur?

C99 onwards (link to draft, Page 22), C specs suggest the type long long int should be atleast 64 bits but it may be more also.

— minimum value for an object of type long long int
LLONG_MIN -9223372036854775807 // −(263−1)
— maximum value for an object of type long long int
LLONG_MAX +9223372036854775807 // 263− 1

On some platforms, long long int might be 128-bit and the print statement invokes UB on such platforms.

So treat this warning as a portability issue warning.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda