¿La cantidad de valores impresos por printf depende de la memoria asignada para un progtwig específico o puede seguir imprimiendo los valores?
El estándar C documenta el número mínimo de argumentos que un comstackdor debe aceptar para una llamada de función:
C11 5.2.4.1 Límites de traducción
La implementación podrá traducir y ejecutar al menos un progtwig que contenga al menos una instancia de cada uno de los siguientes límites:
…
127 argumentos en una llamada de función
…
Por lo tanto, debería poder pasar al menos 126 valores a printf
después de la cadena de formato inicial, asumiendo que la cadena de formato está construida correctamente y es consistente con los argumentos reales que siguen.
Si la cadena de formato es una cadena literal, el estándar garantiza que el comstackdor puede manejar literales de cadena de al menos 4095 bytes y líneas de origen de al menos 4095 caracteres. Puede usar la concatenación de cadenas para dividir el literal en varias líneas de origen. Si utiliza una matriz de caracteres para la cadena de formato, no existe tal limitación.
El único límite ambiental documentado para la familia de funciones printf
es este:
El número de caracteres que puede producir cualquier conversión individual será de al menos 4095
Esto hace que el comportamiento del formato %10000d
en el mejor de los casos en la implementación, pero el estándar no %10000d
nada.
Por lo tanto, una combinación de comstackdor / biblioteca compatible debe aceptar al menos 126 valores para printf
, ya sea que su entorno permita que aún más argumentos puedan definirse por la implementación y documentarse como tales, pero no están garantizados por la norma.