Vai al contenuto
Topos Uranos

Riepilogo

Questa lezione scompone il programma minimo di C++ nei suoi pezzi e spiega il ruolo di ciascuno. La direttiva di inclusione dichiara da quali parti della libreria dipende il programma, e ogni componente esige il proprio header, anche se a volte un altro lo porta con sé «di rimbalzo»; la funzione main è il punto di ingresso, e il suo valore di ritorno, il codice di uscita che riceve il sistema; il namespace std riunisce i nomi della libreria, e il corso li scrive sempre con il loro prefisso; le istruzioni terminano con un punto e virgola, le parentesi graffe raggruppano le istruzioni in blocchi e i commenti spiegano ciò che il codice non dice da sé. La lezione termina con la guida di stile che il corso segue in tutti i suoi programmi, e con il modo di leggere il codice altrui che usa std::cout e std::endl.

Obiettivi di apprendimento

  1. Identificare in un programma la direttiva di inclusione, la funzione main, le istruzioni, i blocchi e i commenti, e spiegare il ruolo di ciascuno.
  2. Spiegare che cosa fa #include e perché ogni componente della libreria esige il proprio header, anche se il programma compila senza di esso con un compilatore determinato.
  3. Correggere un programma con errori di struttura (graffa non chiusa, punto e virgola mancante, header omesso) a partire dai messaggi del compilatore, letti dal primo.
  4. Riscrivere un programma secondo la guida di stile del corso e giustificare ogni modifica.

Il programma minimo

Nella lezione precedente si è compilato ed eseguito un programma senza esaminarlo. Ora lo si legge riga per riga, perché ogni riga risponde a un’esigenza diversa: una del linguaggio, un’altra del sistema operativo, un’altra di chi legge il codice. Il programma è questo.

Programma in C++
// Primo programma: scrive una riga e termina.#include <print>​int main(){    std::println("Ciao, mondo");}
Output
Ciao, mondo

La prima riga è un commento: comincia con due barre e arriva fino alla fine della riga, e il compilatore lo scarta; è scritto per chi leggerà il programma. La seconda è una direttiva di inclusione: chiede che prima di compilare si incorpori l’header <print>, dove la libreria standard dichiara std::println. La riga vuota non ha alcun effetto; separa la preparazione del programma dal suo contenuto. La quarta riga apre la funzione main, il luogo in cui comincia l’esecuzione, e la graffa della quinta apre il suo blocco, che si chiude nell’ultima riga. Dentro il blocco c’è una sola istruzione, terminata da un punto e virgola: la chiamata a std::println, che scrive il testo tra virgolette e poi un ritorno a capo.

Va notato che il programma non contiene alcuna istruzione per terminare. Arrivata alla graffa finale di main, l’esecuzione termina, e il programma comunica al sistema che tutto è andato bene; più avanti si vedrà come. Ne segue che cinque pezzi bastano per un programma completo: commenti, direttive, la funzione main, blocchi e istruzioni. Le sezioni seguenti li esaminano in quest’ordine, tranne i commenti, che si trattano insieme alle istruzioni e ai blocchi.

EsempioI pezzi, uno per uno

Nel programma del saluto, la direttiva è la riga 2; la funzione main occupa le righe da 4 a 7; il suo blocco va dalla graffa della riga 5 a quella della riga 7; l’unica istruzione è la riga 6, e l’unico commento, la riga 1. Se si cancella il commento, il programma si compila allo stesso modo e produce lo stesso output; se si cancella uno qualsiasi degli altri pezzi, smette di compilare o di essere un programma.