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

200
Vistas
¿Llamar a printf con exceso de argumentos es un comportamiento indefinido?

Me pregunto si esto produce un comportamiento indefinido:

 printf("Test %d %s", 123, "abc", "def", "ghi");

Los dos primeros argumentos después de la cadena de formato coinciden con la cadena de formato, por lo que están bien; pero los argumentos tercero y cuarto están en exceso porque no hay más especificadores de formato correspondientes.

En mi humilde opinión printf() simplemente debería ignorar estos argumentos en exceso y no debería haber UB. ¿Es esto correcto?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Sí, este escenario está explícitamente definido por la norma. No es un comportamiento indefinido.

Para citar el estándar C11 , capítulo §7.21.6.1, La función fprintf()

[...] Si el formato se agota mientras quedan argumentos, los argumentos en exceso se evalúan (como siempre) pero de lo contrario se ignoran [...]

over 4 years ago · Santiago Trujillo Denunciar

0

Básicamente, printf (o cualquier función de formato) buscará solo el número 'n' de %d, %c, %f..., etc. en la cadena de formato del argumento de la lista de variables. Otros simplemente son ignorados.

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