Scrivere il primo programma

Primo programma in C[modifica | modifica wikitesto]

Prefazione[modifica | modifica wikitesto]

Ai fini di questo corso viene consigliato l'utilizzo di un Sistema Operativo (SO) base UNIX o UNIX-like quali GNU/Linux [1] e simili (anche Mac OS X) in quanto aventi tutte le utilità necessarie per lo sviluppo software tra le quali il programma gcc[2] che compila codice C e ulteriori comandi universali quali ls e cd utili per muoversi tra le cartelle del SO. (Deve essere ancora creato un capitolo per l'installazione di gcc sulle varie piattaforme)

Introduzione[modifica | modifica wikitesto]

La scrittura di un programma in C si suddivide in varie fasi:

  1. Scrittura
  2. Compilazione ed eventuale "Linking"
  3. Esecuzione


Scrittura[modifica | modifica wikitesto]

Per scrivere il codice sorgente di un programma in C avremo bisogno di un editor di testo. Per editor di testo si intende un programma che permette di scrivere plain-text ossia testo non formattato (Word o simili non vanno bene). Può essere utilizzato anche il textpad di default del SO ma poiché è facile incappare in errori di sintassi ci serve un editor che evidenzi la sintassi. Viene consigliato Sublime Text[3] in quanto funzionante out-of-the-box e altamente personalizzabile (i veterani del software consiglierebbero Vi[4] e Emacs [5], editor performanti che richiedono dedizione per essere imparati ma che danno altrettante soddisfazioni). Ci sono altri software definiti IDE[6] utili per lo sviluppo software ma affinché vi sia una maggiore comprensione di quello che avviene realmente ne viene sconsigliato l'utilizzo (almeno per il linguaggio C).

Compilazione[modifica | modifica wikitesto]

Una volta scritto il codice sorgente esso dovrà essere salvato come un file con estensione .c e compilato. La compilazione avviene tramite terminale (prompt dei comandi). Esempio:

gcc nomefile.c -o nomefile

Questo comando genererà (nella cartella dove esso è stato lanciato) un file chiamato nomefile o nomefile.exe che è il programma eseguibile.

Esecuzione[modifica | modifica wikitesto]

Per eseguire il programma basterà scrivere sul prompt

./nomefile

Il tuo primo programma in C[modifica | modifica wikitesto]

Come da tradizione il primo programma da scrivere, dovrà semplicemente stampare a schermo "Hello World!".

Creiamo una cartella sul Desktop che chiameremo CorsoC. Apriamo Sublime e andiamo su File > Salva e salviamo questo file vuoto sulla cartella CorsoC con nome hello.c.

Alternativamente, usando l'editor di testo, possiamo lavorare interamente da terminale, prima spostandoci alla cartella in cui vogliamo creare il file. Questo avviene in Linux e OS con il comando:

cd ~/Desktop/CorsoC

e una volta lì, aprire un file con l'editor con il comando

gedit hello.c &

Aperto il nostro file, possiamo cominciare a scrivere il sorgente del programma:

1  #include <stdio.h>
2 
3  int main() {
4       printf("Hello World!\n");
5       return 0;
6  }
Salvato il file, potremo compilare il nostro programma con il comando:
gcc hello.c -o hello

Lanciando il programma con:

./hello

l'output risulterà essere:

Hello World

Analisi del codice[modifica | modifica wikitesto]

Analizziamo il nostro codice riga per riga.

La direttiva:

 #include <stdio.h>

avverte il compilatore che verrà utilizzata la libreria di standard input ed output. Per libreria si intende un insieme di funzioni (concetto che vedremo successivamente) già scritte da altri sviluppatori.

1  int main() {
2       ...
3  }

Qui viene definita la funzione main. Per ora definiremo il main come la parte principale dove si svolgerà tutto il nostro programma. Quindi ogni nostro programma C verrà scritto all'interno di questo blocco.

 printf("Hello World!\n");

In questa linea di codice chiamiamo una funzione (appartenente alla libreria stdio.h) che prende in input una stringa (insieme di caratteri racchiusi tra due doppi apici ""). Da notare bene che ogni linea di comando finisce col carattere ;. Questa è la parte del programma che stampa Hello World!. Non vediamo il carattere speciale \n. Invitiamo il lettore a modificare il codice sorgente sostituendo la riga antecedente con

 printf("Hello World!");

ricompilare tutto il programma (se non è stato chiuso il prompt non è necessario ripetere il comando cd) e riflettere sul significato del carattere \n.

Successivo