2011-07-23 20 views
6

Esto debería ser un problema común y posiblemente similar a alguna pregunta aquí, pero estoy buscando la mejor manera de comentar varias líneas (más bien métodos) en C++ que tienen comentarios dentro de ellos. Comprobé algunas publica en SO, pero no pudo obtener detalles completos sobre el uso de algo como si # 0.Comentarios anidados en C++

He echado un vistazo a esta publicación Nested comments in Visual C++? pero no estoy en la plataforma de Windows.

Respuesta

11

Estás casi en lo correcto; esencialmente se sugiere "si-def" la sección del código. Lo que quiere hacer es usar la directiva precompiladora #if para bloquear el código. El ejemplo siguiente muestra que quiero ignorar todo entre if y endif.

#if 0 
/* Giant comment 
it doesn't matter what I put here */ 

// it will be ignored forever. 
#endif 

Para responder a su pregunta en general; no hay una manera de tener comentarios compuestos, es decir,

/* 
    /* */ <--- this closes the first /* 
*/ <--- this dangles. 
1

Las cosas entre el #if 0 y #endif será ignorado por el compilador. (Su preprocesador en realidad podría despojar a cabo antes de que el "compilador" puede incluso tomar una mirada en ella!)

#if 0 

    /* 42 is the answer. */ 

    Have you tried jQuery? 

    @Compiler Stop ignoring me!! 

#endif 

Vas a tener un mejor control si se utiliza #ifdef s:

// #define DEBUG 


#ifdef DEBUG 
    MyFunction(); 
    std::cout << "DEBUG is defined!"; 
#endif 


// Later in your code... 

#ifdef DEBUG 
    std::cout << "DEBUG is still defined!"; 
#endif 

Simplemente elimine el comentario de la primera línea, y su código #ifdef DEBUG de repente estará visible para el compilador.


P.S. Esto debería eliminar cualquier más confusión:

/* 
    cout << "a"; 
    /* 
     cout << "b"; 
    */ 
    cout << "c"; 
*/ 

La salida debe ser "c", asumiendo que su compilador no le da ningún error para la última */.

+1

Otra cosa útil a tener en cuenta es que puede definir DEBUG en tiempo de compilación con el modificador -D en gcc/g ++ (y cualquier compilador respetable). Por ejemplo, si desea compilar su versión de depuración, haría 'gcc main.c -DDEBUG' y DEBUG se definiría para esa compilación. Esto es mucho más versátil que la definición estática de DEPURACIÓN dentro de un archivo. – Slubb

1

Otra ruta suponiendo que está usando Visual Studio es que hay un práctico atajo de teclado para comentar todo el código seleccionado actualmente, agregando // antes de cada línea. CTRL+K + CTRL+C para comentar y CTRL+K + CTRL+U para descomentar.

2

Utilice los medios que su editor proporcione para agregar // al comienzo de todas las líneas.

Por ejemplo, en Vim puede marcar las líneas como un bloque visual y luego insertarlas al principio de todas las líneas con I//. En Visual Studio puede usar el atajo CTRL-K-C para comentar los bloques de código.

Cuestiones relacionadas