El \
, cuando es inmediatamente seguido de una nueva línea, es consumido por el preprocesamiento y hace que la siguiente línea "física" se una a la línea lógica actual. Esto es muy importante para la escritura de las directivas de preprocesamiento de largo, que tienen que ser todo en una línea lógica:
#define SHORT very log macro \
consisting of lots and \
lots of preprocessor \
tokens
Si elimina las secuencias de barra invertida-nueva línea, ya no es correcta. Algunos otros lenguajes de la cultura Unix tienen una sintaxis de continuación de línea diagonal inversa similar: el lenguaje de shell POSIX derivado del shell Bourne y también los archivos make.
$ this is \
one shell command
Sobre "\n";
, que es una expresión primaria utilizada para formar una expresión-comunicado. En C, las expresiones se pueden usar como declaraciones, y esto se explota todo el tiempo. Su llamada printf
, por ejemplo, es una declaración de expresión. printf("hello world\n")
es una expresión de postfijo que llama a una función, obteniendo un valor de retorno. Como utilizó esta expresión como una declaración, el valor de retorno se descarta. El valor de retorno de printf
indica cuántos caracteres se imprimieron, o si fue exitoso en absoluto, por lo que al tirarlo, su programa ignora si la llamada printf
realmente funcionó.
Dado que el valor de un enunciado de expresión se descarta, si dicho enunciado tampoco tiene efectos secundarios, es una afirmación inútil que no hace nada (como su "\n"
). Pero tales declaraciones de expresiones inútiles no son erróneas. Si agrega opciones de advertencia a su línea de comandos del compilador, es posible que reciba una advertencia como "declaración sin efecto" o algo así.
"\ n"; es una declaración sin ningún efecto. Es completamente ignorado por el compilador y genera una advertencia. Intente compilar con gcc -Wall flag que habilite las advertencias de compilación. – dAm2K
Su pregunta principal ha sido respondida varias veces. En referencia a la parte sobre '" \ n ";', un programa c es (más o menos) una lista de enunciados. Un valor literal (como '3', o' "\ n" ', o' "hamburgers" ') es una afirmación perfectamente válida, aunque no _do_ nada. – jpm