Não há um erro de sintaxe? Deve printf (“um” “, dois e” “% s. \ N”, “três”); ser código válido?
Dê uma olhada neste código:
#include <stdio.h>
#define _ONE "one"
#define _TWO_AND ", two and "
int main()
{
const char THREE[6] = "three" ;
printf(_ONE _TWO_AND "%s.\n", THREE );
return 0;
}
oprintf
é efetivamente:
printf("one" ", two and " "%s.\n", "three" );
e a saída é:
um, dois e três.
gcc
não dá erro nem mensagens de aviso depois de compilar este código. É ogcc
compilador supostamente funciona dessa maneira, ou é um bug?