Los comentarios sirven como una especie de documentación en código. Cuando se insertan en un programa, el compilador los ignora de manera efectiva; están destinados únicamente a ser utilizados como notas por los humanos que leen el código fuente.

Sintaxis

/*comentario*/ (1)
//comentario (2) (desde C99)

1) A menudo conocidos como comentarios de “estilo C” o “multilínea”.2) A menudo conocidos como comentarios de “estilo C ++” o “de una sola línea”.

Todos los comentarios se eliminan del programa en la fase de traducción 3 reemplazando cada comentario con un solo carácter de espacio en blanco.

Estilo C

Los comentarios de estilo C se utilizan generalmente para comentar grandes bloques de texto o pequeños fragmentos de código; sin embargo, se pueden utilizar para comentar líneas individuales. Para insertar texto como un comentario de estilo C, simplemente rodee el texto con /* y */. Los comentarios de estilo C le dicen al compilador que ignore todo el contenido entre /* y */. Aunque no forma parte del estándar C, /** y */ se utilizan a menudo para indicar bloques de documentación; esto es legal porque el segundo asterisco simplemente se trata como parte del comentario.

Excepto dentro de una constante de carácter, una string literal, o un comentario, los personajes /* introducir un comentario. El contenido de dicho comentario se examina solo para identificar caracteres multibyte y encontrar los caracteres */ que terminan el comentario. Los comentarios de estilo C no se pueden anidar.

C ++ – estilo

Los comentarios de estilo C ++ se utilizan generalmente para comentar líneas individuales de texto o código; sin embargo, se pueden colocar juntos para formar comentarios de varias líneas. Para insertar texto como un comentario de estilo C ++, simplemente preceda el texto con // y siga el texto con el carácter de nueva línea. Los comentarios de estilo C ++ le dicen al compilador que ignore todo el contenido entre // y una nueva línea.

Excepto dentro de una constante de carácter, una string literal, o un comentario, los personajes // introduzca un comentario que incluya todos los caracteres multibyte hasta el siguiente carácter de nueva línea, pero sin incluirlo. El contenido de dicho comentario se examina solo para identificar caracteres multibyte y para encontrar el carácter de nueva línea que termina el comentario. Los comentarios de estilo C ++ se pueden anidar:

//  y = f(x);   // invoke algorithm

Un comentario de estilo C puede aparecer dentro de un comentario de estilo C ++:

//  y = f(x);   /* invoke algorithm */

Un comentario de estilo C ++ puede aparecer dentro de un comentario de estilo C; este es un mecanismo para excluir un pequeño bloque de código fuente:

/*
    y = f(x);   // invoke algorithms
    z = g(x);
*/
(desde C99)

Notas

Dado que los comentarios se eliminan antes de la etapa de preprocesador, macro no se puede usar para formar un comentario y un comentario de estilo C sin terminar no se desborda de un archivo # incluido.

/* An attempt to use a macro to form a comment. *//* But, a space replaces characters "//".       */#ifndefDEBUG#definePRINTF//#else#definePRINTFprintf#endif...PRINTF("Error in file %s at line %in",__FILE__,__LINE__);

Además de comentar, otros mecanismos utilizados para la exclusión del código fuente son:

#if0puts("this will not be compiled");/* no conflict with C-style comments */// no conflict with C++-style comments#endif

y.

if(0)puts("this will be compiled but not be executed");/* no conflict with C-style comments */// no conflict with C++-style comments

La introducción de // comments en C99 fue un cambio radical en algunas circunstancias excepcionales:

a = b //*divisor:*/ c+ d;/* C89 compiles a = b / c + d;
        C99 compiles a = b + d; */

Ejemplo

#include/*
C-style comments can contain
multiple lines.
*//* Or, just one line. */// C++-style comments can comment one line.// Or, they can// be strung together.intmain(void)// The below code won't be run// puts("Hello");// The below code will be runputs("World");

Producción:

World

Referencias

  • Estándar C11 (ISO / IEC 9899: 2011):
    • 6.4.9 Comentarios (p: 75)
  • Estándar C99 (ISO / IEC 9899: 1999):
    • 6.4.9 Comentarios (p: 66)
  • Estándar C89 / C90 (ISO / IEC 9899: 1990):
    • 3.1.9 Comentarios

Ver también