Czy nie ma błędu składni? Jeśli printf („jeden” „, dwa i” „% s. N”, „trzy”); być prawidłowym kodem?
Spójrz na ten kod:
#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;
}
Theprintf
jest skutecznie:
printf("one" ", two and " "%s.\n", "three" );
a wyjście to:
jeden, dwa i trzy.
gcc
nie zawiera błędów ani komunikatów ostrzegawczych po skompilowaniu tego kodu. Jestgcc
kompilator powinien działać w ten sposób, czy jest to błąd?