C no tiene un operador de concatenación de cadenas específico ( +
) como C # y Java. En C # o Java, cuando el compilador ve
"a" + "b"
puede compilar el código exactamente como si
"ab"
fueron escritos en el código fuente. En C, sin embargo, no existe una sintaxis similar para describir la concatenación de cadenas que el compilador puede reconocer y calcular previamente. Entonces, los diseñadores de C hace décadas eligieron eso
"a" "b"
significaría exactamente lo mismo que
"ab"
Naturalmente, C ++ heredó la misma convención. Mientras que el C ++ estándar sobrecargas de la biblioteca +
en std::string
que la concatenación de cadena media, el compilador no intenta se unen "a" + "b"
, ya que es en realidad un error (no se puede agregar dos const char *
punteros juntos).
#define FOO "foo-value"
seguidas más tarde"FOO's value is " FOO "."