Comentarios en C++: //, /* */ y cómo comentar como un profesional

Respuesta corta: // comenta el resto de la línea; /* ... */ comenta todo lo que queda entre los marcadores, aunque abarque varias líneas. El compilador descarta ambos antes incluso de empezar — prueba de ello, abajo.

#include <iostream>
using namespace std;

// Este comentario de línea explica el programa. El compilador lo ignora.

/* Los comentarios de bloque pueden abarcar
   tantas líneas como necesites. */

int main() {
    cout << "comments are ignored" << endl;  // comentario al final de la línea
    // cout << "this line does not run";
    return 0;
}

La salida lo demuestra: las líneas comentadas no producen código, ni salida, ni coste. Eso convierte los comentarios en una herramienta de comunicación para humanos — y, como toda comunicación, la mayor parte es ruido.

Las dos formas

FormaAlcanceUso típico
// comentario de líneahasta el final de la líneaExplicar una línea o una decisión — la opción predeterminada del día a día
/* bloque */hasta el */ de cierreDesactivar temporalmente un bloque de código, notas de cabecera de archivo

La trampa: los comentarios de bloque no se anidan

/*
  Desactivando este bloque de depuración...
  /* comentario interno */    ← the block ENDS here!
  cout << "this is NOT commented out";   // ← sorpresa, es código vivo
*/                        // ← */ huérfano — error de sintaxis

El primer */ cierra el bloque, sin importar cuántos /* lo hayan abierto. Por eso depurar comentando bloques falla de formas confusas. Para desactivar código temporalmente, es preferible #if 0 … #endif (que sí se anidan) o simplemente borrarlo — el control de versiones lo recuerda.

Qué separa los comentarios buenos del ruido

Comentarios en el mundo real (enfoque de entrevista)

  1. «¿Los comentarios afectan al rendimiento?» — no; se eliminan antes de la compilación. Cero coste en tiempo de ejecución, un pequeño coste en tiempo de compilación.
  2. «¿Se pueden anidar los comentarios de bloque?» — no; gana el primer */ (ver la trampa de arriba). Una pregunta de cribado sorprendentemente habitual.
  3. «¿Qué son los comentarios de documentación?» — anotaciones al estilo /// que los generadores de documentación convierten en documentación de referencia; práctica estándar en las API públicas.
  4. «¿Cómo revisarías un diff de 300 líneas sin comentarios?» — la verdadera pregunta que hay detrás: ¿el código explica su porqué? Los nombres pueden cargar con mucho; los comentarios llevan lo que los nombres no pueden.

Práctica

Relacionado: la lección del Hola Mundo (donde aparecen los comentarios por primera vez), qué es int main() y el bucle while explicado (EN).