Espacios de nombres
Variantes
Acciones

Comentarios

De cppreference.com
< c

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

Contenido

[editar] Sintaxis

/* comentario */ (1)
// comentario (2) (desde C99)
1) A menudo conocidos como comentarios "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.

[editar] Estilo C

Los comentarios de estilo C se utilizan normalmente para comentar grandes bloques de texto o pequeños fragmentos de código; sin embargo, se pueden utilizar para comentar líneas simples. 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 se trata simplemente como parte del comentario.

Excepto dentro de un carácter constante, un string literal, o un comentario, los caracteres /* introducen un comentario. El contenido de un comentario de este tipo se examina sólo para identificar los caracteres multibyte y para encontrar los caracteres */ que terminan el comentario. Los comentarios de estilo C no pueden anidarse.


Estilo C++

Los comentarios de estilo C++ se utilizan normalmente 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 al estilo de C++, simplemente preceda el texto con // y siga el texto con el nuevo carácter de 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 un carácter constante, un string literal o un comentario, los caracteres // introducen un comentario que incluye todos los caracteres multibyte hasta, pero sin incluir, el siguiente carácter de nueva línea. El contenido de un comentario de este tipo se examina sólo para identificar los caracteres multibyte y para encontrar el nuevo carácter de línea que termina el comentario. Los comentarios de estilo C++ pueden anidarse:

//  y = f(x);   // invoca el algoritmo
Un comentario de estilo C puede aparecer dentro de un comentario de estilo C++:
//  y = f(x);   /* invoca al algoritmo */

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);   // invoca los algoritmos
    z = g(x);
*/
(desde C99)

[editar] Observaciones

Dado que los comentarios se eliminan antes de la etapa de preprocesador, no se puede utilizar una macro para formar un comentario y un comentario de estilo C sin terminar no se derrama desde un archivo #include'd.

/* Un intento de usar una macro para formar un comentario. */
/* Pero, un espacio reemplaza a los caracteres "//".       */
#ifndef DEBUG
    #define PRINTF //
#else
    #define PRINTF printf
#endif
...  
PRINTF("Error en el archivo %s en la linea %i\n", __FILE__, __LINE__);
Además de comentar, se utilizan otros mecanismos de exclusión de código fuente:
#if 0
    puts("esto no será compilado");
    /* No hay conflicto con los comentarios de estilo C */
    // No hay conflicto con los comentarios de estilo C++
#endif

and

if(0) {
    puts("esto se compilará pero no se ejecutará");
    /* No hay conflicto con los comentarios de estilo C */
    // No hay conflicto con los comentarios de estilo C++
}

La introducción de los comentarios // en el C99 fue un cambio que introdujo errores en algunas circunstancias poco frecuentes:

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

[editar] Ejemplo

#include <stdio.h>
/*
Los comentarios de estilo C pueden contener
múltiples líneas.
*/
 
/* O, sólo una línea. */
 
// Los comentarios de estilo C++ pueden comentar una línea.
 
// O bien, pueden
// ser encadenados.
 
int main(void)
{
  // El siguiente código no se ejecutará
  // puts("Hola");
 
  // El siguiente código se ejecutará
  puts("Mundo");
}

Salida:

Mundo

[editar] Referencias

  • Standard C11 (ISO/IEC 9899:2011):
  • 6.4.9 Comments (p: 75)
  • Standard C99 (ISO/IEC 9899:1999):
  • 6.4.9 Comments (p: 66)
  • Standard C89/C90 (ISO/IEC 9899:1990):
  • 3.1.9 Comments

[editar] Véase también

Documentación de C++ para Comentarios