Comments
Los comentarios sirven como una especie de documentación dentro del código. Cuando se insertan en un programa, el compilador los ignora efectivamente; están destinados únicamente a ser utilizados como notas por los humanos que leen el código fuente.
Contenidos |
Sintaxis
/*
comentario
*/
|
(1) | ||||||||
//
comentario
|
(2) | (desde C99) | |||||||
Todos los comentarios son eliminados del programa en la fase de traducción 3 reemplazando cada comentario con un único 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, pueden usarse para comentar líneas individuales. Para insertar texto como comentario de estilo C, simplemente rodee el texto con
/*
y
*/
. Los comentarios de estilo C indican al compilador que ignore todo el contenido entre
/*
y
*/
. Aunque no es parte del estándar de C,
/**
y
**/
se utilizan frecuentemente 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
, un
literal de cadena
, o un comentario, los caracteres
/*
introducen un comentario. El contenido de dicho comentario se examina únicamente para identificar caracteres multibyte y encontrar los caracteres
*/
que terminan el comentario. Los comentarios de estilo C no pueden anidarse.
C++-style
Los comentarios estilo C++ se utilizan generalmente para comentar líneas individuales de texto o código; sin embargo, pueden colocarse juntos para formar comentarios multilínea. Para insertar texto como comentario estilo C++, simplemente preceda el texto con
Excepto dentro de una
constante de carácter
, un
literal de cadena
o un comentario, los caracteres
// y = f(x); // invoke algorithm
Un comentario estilo C puede aparecer dentro de un comentario estilo C++: // y = f(x); /* invoke algorithm */
Un comentario estilo C++ puede aparecer dentro de un comentario 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
Debido a que los comentarios son eliminados antes de la etapa del preprocesador, una macro no puede utilizarse para formar un comentario y un comentario de estilo C sin terminar no se extiende desde un archivo #include'd.
/* Un intento de usar una macro para formar un comentario. */ /* Pero, un espacio reemplaza los caracteres "//". */ #ifndef DEBUG #define PRINTF // #else #define PRINTF printf #endif ... PRINTF("Error en archivo %s en línea %i\n", __FILE__, __LINE__);
Además de comentar, otros mecanismos utilizados para la exclusión de código fuente son:
#if 0 puts("esto no será compilado"); /* no conflict with C-style comments */ // no conflict with C++-style comments #endif
y
if(0) { puts("esto será compilado pero no será ejecutado"); /* no conflict with C-style comments */ // no conflict with C++-style comments }
La introducción de los comentarios // en C99 fue un cambio disruptivo en algunas circunstancias poco comunes:
a = b //*divisor:*/ c + d; /* C89 compiles a = b / c + d; C99 compiles a = b + d; */
Ejemplo
#include <stdio.h> /* Los comentarios estilo C pueden contener múltiples líneas. */ /* O, solo una línea. */ // Los comentarios estilo C++ pueden comentar una línea. // O, pueden // encadenarse juntos. int main(void) { // El código siguiente no se ejecutará // puts("Hello"); // El código siguiente sí se ejecutará puts("World"); // Una nota sobre barra invertida + nueva línea. // A pesar de pertenecer a la fase de traducción 2 (vs fase 3 para comentarios), // '\' aún determina qué porción del código fuente se considera // como 'comentarios': // Este comentario será promovido a la siguiente línea \ puts("Won't be run"); // puede generar una advertencia "comentario multilínea" puts("Hello, again"); }
Salida:
World Hello, again
Referencias
- Estándar C17 (ISO/IEC 9899:2018):
-
- 6.4.9 Comentarios (p: 54)
- 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
Véase también
|
Documentación de C++
para
Comments
|