Skip to content

Il tuo primo programma in C

Il modo migliore per imparare a programmare in C è iniziare a scriverne il codice. Il programma tradizionale con cui si inizia è il famoso “Hello, world!”.

Esaminiamo il programma base:

#include <stdio.h>
#include <stdlib.h>
int main(void) {
puts("Hello, world!");
return EXIT_SUCCESS;
}

Prima di analizzare il codice riga per riga, è fondamentale capire come un file di testo diventi un programma eseguibile.

  1. Pre-processore: Risolve le direttive che iniziano con # (come le inclusioni di file header).
  2. Compilatore: Traduce il codice C in linguaggio assembly o codice oggetto macchina, ma non è ancora un eseguibile completo.
  3. Linker: Collega il tuo codice compilato con le librerie esterne (es. la libreria standard C) per creare il file eseguibile finale.
  1. Direttive del Preprocessore (#include): Le prime due righe dicono al compilatore di includere le definizioni: <stdio.h> per Input/Output (necessario per puts) e <stdlib.h> per la macro EXIT_SUCCESS.
  2. La funzione main: int main(void) definisce l’entry point del programma.
  1. La funzione puts: Stampa una stringa a schermo (stdout) e va automaticamente a capo.
  2. Valore di ritorno: return EXIT_SUCCESS; chiude la funzione. Ritorna al sistema operativo che tutto è andato a buon fine.

Prova a eseguire il codice qui sotto. Modifica il messaggio all’interno di puts() affinché stampi esattamente "Benvenuto in C!" e clicca su Esegui.

Stai lavorando a un sistema di controllo del traffico aereo (mission-critical). Quale delle seguenti definizioni di main è la più corretta e sicura secondo gli standard C storici?

Durante il processo di costruzione del tuo programma C, in quale fase le direttive come #include vengono risolte espandendo il codice sorgente?

Se stai programmando un dispositivo medico impiantabile usando le linee guida MISRA C, perché potresti non trovare funzioni come 'puts' o 'printf' nel codice?