C não possui um operador de concatenação de string específico ( +
) como C # e Java. Em C # ou Java, quando o compilador vê
"a" + "b"
ele pode compilar o código exatamente como se
"ab"
foram escritos no código fonte. Em C, no entanto, não há sintaxe igualmente fácil para descrever a concatenação de seqüências de caracteres que o compilador pode reconhecer e pré-calcular. Então, os designers de C décadas atrás escolheram que
"a" "b"
significaria exatamente a mesma coisa que
"ab"
Naturalmente, o C ++ herdou a mesma convenção. Enquanto o padrão C ++ sobrecargas biblioteca +
sobre std::string
a concatenação média corda, o compilador não tenta coalesce "a" + "b"
porque isso é realmente um erro (você não pode adicionar dois const char *
ponteiros juntos).
#define FOO "foo-value"
seguidas posteriormente por"FOO's value is " FOO "."