Comentarios
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.
Sintaxis
/* comentario */
|
(1) | ||||||||
// comentario
|
(2) | (desde C99) | |||||||
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 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 Excepto dentro de un carácter constante, un string literal o un comentario, los caracteres // y = f(x); // invoca el algoritmo
// 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) |
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; */
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
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
Véase también
Documentación de C++ para Comentarios
|