I Commenti in Linguaggio C

Il codice sorgente di un programma non è letto soltanto da un compilatore, ma anche da altri programmatori. Per questo motivo, è importante documentare il codice sorgente in modo che sia comprensibile a tutti.

Il linguaggio C permette di inserire dei commenti all'interno del codice sorgente, ossia porzioni di testo che vengono ignorate dal compilatore. I commenti sono utili per spiegare il significato delle righe di codice e per aggiungere informazioni utili destinate a chi legge.

Documentazione e Commenti

Un importante attività che un programmatore deve svolgere durante la stesura di un programma è la documentazione.

Risulta fondamentale, durante lo sviluppo di un software, annotare le parti più importanti del codice, in modo da renderne più agevole la comprensione a chi dovrà leggerlo in futuro.

Del resto il codice che compone un programma è scritto per essere letto da un computer, ma anche da un essere umano. Inoltre, in uno stesso progetto, possono lavorare più persone e, quindi, è necessario che il codice sia comprensibile da tutti.

Per questo motivo, il linguaggio C, come altri linguaggi, permette di commentare il codice. I commenti sono porzioni di testo che è possibile inserire all'interno del codice sorgente e che vengono ignorati dal compilatore.

In C si possono scrivere i commenti racchiudendoli tra i simboli /* e */. Ad esempio, possiamo riscrivere il programma ciao.c inserendo un commento che spiega il significato di ogni riga:

#include <stdio.h>

int main() {
    /* Stampa a schermo il messaggio "Ciao, Mondo!" */
    printf("Ciao, Mondo!\n");

    /* Termina il programma */
    return 0;
}

I due commenti inseriti nel codice di sopra non influiscono sulla funzionalità del programma, in quanto vengono letteralmente eliminati in fase di compilazione. Tuttavia, essi sono utili per chi legge il codice, in quanto chiariscono il significato delle righe di codice.

Definizione

Commenti in C

I commenti in C sono porzioni di testo che vengono ignorate dal compilatore. Essi sono utili per documentare il codice e spiegare il significato delle righe di codice.

Un commento inizia con /* e termina con */. La sintassi per scrivere un commento in C è la seguente:

/* Questo è un commento */

Un commento può anche essere scritto su più righe, utilizzando il simbolo /* per aprire il commento e */ per chiuderlo. Ad esempio, possiamo inserire un'intestazione nel nostro programma che ne descriva alcune informazioni, tra cui data di creazione, scopo, nome e così via:

/*  Programma: ciao.c
    Autore: Mario Rossi
    Data: 01/01/2021
    Scopo: Stampa a schermo il messaggio "Ciao, Mondo!" */

#include <stdio.h>

int main() {
    /* Stampa a schermo il messaggio "Ciao, Mondo!" */
    printf("Ciao, Mondo!\n");

    /* Termina il programma */
    return 0;
}

In questo caso, il commento è stato scritto su più righe, per renderlo più leggibile. Questo è particolarmente utile quando si devono scrivere commenti più lunghi, che descrivono parti di codice più complesse.

Il problema dei commenti multiriga è che non è subito chiaro dove finiscano. Per cui è consigliabile scrivere il terminatore del commento su una riga separata in questo modo:

/*  Programma: ciao.c
    Autore: Mario Rossi
    Data: 01/01/2021
    Scopo: Stampa a schermo il messaggio "Ciao, Mondo!" 
*/

In questo modo, è più facile capire dove inizia e dove finisce il commento.

A volte i programmatori diventano creativi e non è raro trovare commenti multi riga racchiusi in dei rettangoli di asterischi:

/************************************************************
 *  Programma: ciao.c                                       *
 *  Autore: Mario Rossi                                     *
 *  Data: 01/01/2021                                        *
 *  Scopo: Stampa a schermo il messaggio "Ciao, Mondo!"     *
 ************************************************************/

Anche in questo caso, il commento è stato scritto su più righe, ma è stato racchiuso in un rettangolo di asterischi, per renderlo più visibile.

Definizione

Commenti Multiriga in C

Un commento in linguaggio C può essere scritto su più righe, utilizzando il simbolo /* per aprire il commento e */ per chiuderlo. Il compilatore ignorerà tutto ciò che è racchiuso tra /* e */.

La sintassi per scrivere un commento multiriga in C è la seguente:

/* Questo è un commento
   su più righe */

Posizione dei Commenti

Prima abbiamo scritto commenti su righe dedicate. Tuttavia, è possibile scrivere commenti anche alla fine di una riga di codice. Questo è utile nei casi in cui il commento è breve e riguarda una singola riga di codice.

Ad esempio, possiamo scrivere il codice di sopra in questo modo:

printf("Ciao, Mondo!\n"); /* Stampa il messaggio */
return 0: /* Termina il programma */
Nota

Attenzione ai commenti dopo le istruzioni

I commenti che seguono le istruzioni possono essere fonte di errori. Infatti, se si dimenticano i caratteri */ per chiudere il commento, il compilatore potrebbe ignorare porzioni del nostro codice.

Riprendendo il codice di sopra, se dimentichiamo di chiudere il commento in questo modo:

printf("Ciao, Mondo!\n"); /* Stampa il messaggio
return 0; /* Termina il programma */

Il compilatore ignorerà la riga return 0;, in quanto la considererà parte del commento che termina con */.

Commenti a riga singola in C99

A partire dallo standard C99, tutti i compilatori supportano un nuovo tipo di commenti, chiamati commenti a riga singola.

Questo tipo di commento è stato introdotto per semplificare la scrittura di commenti brevi e non richiede di chiudere il commento con */.

Per scrivere un commento a riga singola, è sufficiente utilizzare il doppio slash //. Ad esempio, possiamo scrivere il codice di sopra in questo modo:

printf("Ciao, Mondo!\n"); // Stampa il messaggio
return 0; // Termina il programma

Il vantaggio dei commenti a riga singola è che essi terminano non appena termina la riga di codice. Questo significa che non è necessario preoccuparsi di chiudere il commento con */.

Definizione

Commenti a riga singola

A partire dallo standard C99 è possibile scrivere commenti a riga singola utilizzando il doppio slash //. Tali commenti iniziano con // e terminano alla fine della riga.

La sintassi è la seguente:

// Questo è un commento a riga singola

Disabilitare il codice con i Commenti

I commenti sono utili anche per un altro scopo. Infatti, durante la fase di sviluppo di un programma, è possibile inserire dei commenti per disabilitare temporaneamente delle porzioni di codice.

In gergo tecnico si dice che il codice è stato commentato.

Ad esempio, prendiamo il programma che segue, che stampa a schermo tre messaggi:

#include <stdio.h>

int main() {
    printf("Messaggio 1\n");
    printf("Messaggio 2\n");
    printf("Messaggio 3\n");

    return 0;
}

Supponiamo di voler disabilitare la stampa del messaggio 2. Possiamo farlo racchiudendo la riga di codice tra i simboli /* e */:

#include <stdio.h>

int main() {
    printf("Messaggio 1\n");
    /* printf("Messaggio 2\n"); */
    printf("Messaggio 3\n");

    return 0;
}

In questo modo, la riga printf("Messaggio 2\n"); viene ignorata dal compilatore e non verrà eseguita.

In Sintesi

In questa lezione abbiamo studiato un altro importante aspetto del linguaggio C: i commenti.

I commenti sono porzioni di testo che vengono ignorate dal compilatore e che servono per documentare il codice. Essi possono essere scritti su una o più righe e possono essere utilizzati per spiegare il significato delle righe di codice.

Abbiamo visto che i commenti possono essere scritti tra i simboli /* e */ oppure utilizzando il doppio slash // per i commenti a riga singola.

Infine, abbiamo visto che i commenti possono essere utilizzati per disabilitare temporaneamente delle porzioni di codice.