He buscado un poco para obtener información sobre esto, pero no encontré nada satisfactorio. ¿Hay algún comportamiento especial en la función llamada¿Por qué gcc -Wall da una advertencia sobre la cadena de formato de longitud cero?
sprintf(someString, "");
que explica por qué esto es una advertencia (en gcc con -Wall)? Solo logré encontrar que el estándar C permite cadenas de formato de longitud cero.
He probado el siguiente ejemplo
#include <stdio.h>
int main()
{
char str[2] = {'a', 'a'};
sprintf(str, "");
printf("\'%c\'\'%c\'\n", str[0], str[1]);
return 0;
}
que imprime
'''a'
que es exactamente lo que esperaba ver. Entonces, ¿por qué la advertencia?
No entiendo dónde encontraste la implicación de que C++ no ... –
Tienes razón, pensé que era el caso al principio porque estaba compilando el código con g ++, pero ahora veo que gcc da la misma advertencia – SirGuy
Ah, y en caso de que alguien se pregunte, tropecé con este código accidentalmente, no lo escribí yo mismo – SirGuy