Menu

Commenti in C++: su una riga // e su più righe /* */

Come scrivere commenti in C++, dalle note su una riga // ai blocchi su più righe /* */, più come commentare codice, perché i commenti a blocco non si annidano e cosa rende un commento degno di essere tenuto.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

A cosa servono i commenti

Un commento è testo nel tuo codice sorgente che il compilatore C++ ignora completamente. Non arriva mai nel programma compilato: esiste solo per le persone che leggono il codice. Usi i commenti per spiegare perché una cosa è fatta in un certo modo, per lasciare promemoria o per disattivare temporaneamente del codice senza cancellarlo.

Partendo dalla sintassi del C++ che già conosci, i commenti sono una delle poche cose che puoi mettere quasi ovunque e che il compilatore semplicemente salterà. Il C++ ne ha due tipi: su una riga (//) e a blocco su più righe (/* */).

Commenti su una riga

Due barre (//) iniziano un commento che arriva fino alla fine della riga corrente. Il compilatore salta tutto ciò che va dal // all'a capo.

Nota che il secondo commento condivide la riga con del codice vero. Tutto ciò che sta prima del // viene comunque eseguito; solo la parte successiva viene ignorata. È lo stile di commento più comune per le note brevi.

Commenti a blocco su più righe

Quando la tua nota occupa diverse righe, un commento a blocco è più pulito che mettere // davanti a ogni riga. Un commento a blocco inizia con /* e termina con */. Tutto ciò che sta tra i due, per quante righe siano, viene ignorato.

I caratteri * allineati lungo il margine sono una convenzione di stile, non una regola. Le uniche parti che contano davvero sono il /* di apertura e il */ di chiusura. Un commento a blocco può perfino stare a metà riga (int x = 5 /* width */ + 2; è valido), anche se così diventa presto difficile da leggere.

Commentare il codice

I commenti sono il modo standard per disattivare del codice mentre sperimenti, senza cancellarlo. Usa // per una singola riga, o un commento a blocco per spegnere più righe insieme.

Eseguilo e vedrai stampate solo le due righe con "runs". Le istruzioni cout commentate sono invisibili al compilatore.

Il problema dell'annidamento

Una trappola in cui cadono i principianti: i commenti a blocco non si annidano. Il primo */ chiude il commento, indipendentemente da quanti /* ci siano stati prima. Quindi non puoi racchiudere un blocco /* ... */ dentro un altro blocco /* ... */: il */ interno chiude tutto, e ciò che segue torna a essere codice (di solito con un errore di sintassi).

/*  Trying to disable a region that already has a block comment...
    int n = 10; /* the width */
    cout << n;
*/  // the first */ above already closed the comment - this line is now stray code

Il commento esterno termina al */ dopo the width, quindi il resto non è più commentato e il compilatore si blocca sul */ finale. Quando devi disattivare una regione che contiene già commenti a blocco, usa invece // su ogni riga. La maggior parte degli editor attiva o disattiva i commenti di riga su un'intera selezione con una sola scorciatoia da tastiera, il che evita del tutto il problema.

Commenti utili e rumore

Un commento dovrebbe spiegare qualcosa che il codice non riesce a dire da solo. I commenti che si limitano a ripetere il codice aggiungono disordine e tendono a diventare obsoleti man mano che il codice cambia.

// Bad: just repeats what the code obviously does
i = i + 1; // add one to i

// Better: explains the reason, which the code can't show
retries++; // back off and retry; the API is rate-limited at 5 req/sec

Cerca di rendere leggibile il codice con nomi chiari e una buona struttura, e riserva i commenti al perché: intenzioni, compromessi, casi limite e collegamenti al contesto. Se ti ritrovi a scrivere un commento per spiegare una riga confusa, spesso è un segnale che dovresti rinominare una variabile o dividere la logica in una funzione con un nome chiaro.

Prossimo: Variabili

Ora che sai annotare il tuo codice, il prossimo mattone è memorizzarci dei dati. La prossima pagina tratta le variabili: come dichiararle, i tipi predefiniti che contengono e le regole che il C++ impone perché è a tipizzazione statica.

Domande frequenti

Come si scrive un commento in C++?

Usa // per un commento su una sola riga: tutto ciò che segue su quella riga viene ignorato dal compilatore. Per un commento che occupa più righe, racchiudi il testo tra /* e */. Per esempio: // questa è una nota oppure /* questo occupa più righe */.

Qual è la differenza tra // e /* */ in C++?

// commenta il resto di una singola riga, quindi ne serve uno su ogni riga. /* */ è un commento a blocco che inizia a /* e continua fino al */ successivo, anche su molte righe. Usa // per brevi note in linea e /* */ per disattivare in un colpo solo un pezzo di testo o di codice.

Si possono annidare i commenti in C++?

No. I commenti a blocco (/* */) non si annidano: il primo */ chiude il commento, indipendentemente da quanti /* ci siano stati prima. Per disattivare una regione che contiene già commenti a blocco, metti invece // su ogni riga (la maggior parte degli editor lo fa con una sola scorciatoia).

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA