C (linguaggio): cosa è, a cosa serve e mini tutorial
Cosa è il C
Il C è un linguaggio di programmazione apprezzato per la sua straordinaria efficienza, flessibilità e la capacità di gestire le risorse hardware con precisione. Essendo un linguaggio di programmazione di basso livello, è fondamentale nello sviluppo di software di sistema, come sistemi operativi e driver, così come nelle applicazioni che richiedono alte prestazioni.
Con il suo design semplice ma estremamente efficace, il C consente ai programmatori di avere un controllo diretto e approfondito sull’hardware, rendendolo uno strumento indispensabile nella programmazione moderna.
Questo linguaggio di programmazione fu sviluppato nei primi anni ’70 da Dennis Ritchie presso i Bell Labs, come evoluzione del linguaggio B. Fu creato per essere utilizzato con il nascente sistema operativo UNIX, anch’esso sviluppato nei Bell Labs. Il C guadagnò rapidamente popolarità per la sua efficienza e portabilità, diventando uno standard de facto nel mondo della programmazione. La sua sintassi influenzò molti altri linguaggi successivi, come C++, Java e C#.
Il linguaggio C è utilizzato sia in ambito aziendale che accademico.
A cosa serve il C
Il linguaggio di programmazione C serve per diversi scopi, tra cui:
- Sviluppo di Sistemi Operativi. Uno dei principali utilizzi di questo linguaggio è la creazione e manutenzione di sistemi operativi, come il kernel di Linux.
- Software di sistema e firmware. Questo linguaggio è fondamentale per sviluppare software che interagisce direttamente con l’hardware, come compilatori, linker e driver di dispositivo.
- Applicazioni embedded. In sistemi con risorse hardware limitate o requisiti di tempo reale, il C è spesso la scelta preferita per il suo basso consumo di risorse e alta efficienza. E’ possibile che il software della nostra lavatrice moderna sia stato scritto proprio in questo linguaggio!
- Giochi e grafica. Molti motori di gioco e applicazioni grafiche che richiedono alte performance sono scritti in questo linguaggio.
- Librerie e framework. Questo linguaggio viene utilizzato per sviluppare librerie di funzioni che possono essere utilizzate in altri linguaggi di programmazione.
- Simulazioni e calcolo scientifico. Utilissimo laddove sono richieste performance elevate, ad esempio per simulare modelli scientifici.
- Base per altri linguaggi. Molti linguaggi moderni, come C++, C# e Objective-C, sono derivati dal C e ne incorporano molte delle sue caratteristiche fondamentali.
Linguaggio C: chi possiede questa competenza
Le figure professionali dell’IT che utilizzano il C sono specializzate nell’ambito dello sviluppo software:
- Software Engineer. Questi professionisti sviluppano software che gestisce le risorse hardware, come compilatori, linker, e driver.
- PLC Developer. Lavorano con sistemi integrati o microcontrollori e utilizzano questo linguaggio per scrivere codice che è efficiente in termini di risorse.
- Data Scientist. Anche se non è comune, alcuni data scientist utilizzano questo linguaggio per le simulazioni e il calcolo scientifico per aumentare la performance.
- Game Developer. Molti sviluppatori di giochi utilizzano C o C++ per la realizzazione di motori di gioco ad alte prestazioni.
- Back End Developer. Anche se meno comune rispetto ad altri linguaggi, il C è ancora utilizzato per sviluppare algoritmi ad alte prestazioni.
Mini tutorial
Passare dalla teoria alla pratica in tempi rapidi porta sempre ad una certa soddisfazione. Vogliamo provare a scrivere e a far “girare” il nostro primo programma scritto in C?
Bene, vediamo uno degli esercizi più semplici, ma non banale, ossia il codice che serve per far elencare da un elaboratore i numeri primi da 1 fino ad un numero a nostro piacimento. Ricordiamo che i numeri primi sono quei numeri naturali che sono divisibili solo per se stessi e per l’unità (2, 3, 5, 7, 11, …).
Il codice C per questo scopo è il seguente:
#include <stdio.h>
#include <stdbool.h>
// Funzione per verificare se un numero è primo
bool isPrime(int n) {
if (n <= 1) return false; // 0 e 1 non sono numeri primi
for (int i = 2; i * i <= n; i++) { //Scorro i numeri
if (n % i == 0) return false; // Trovato un divisore
}
return true;
}
int main() {
int limit;
printf("Inserisci il limite per la ricerca di numeri primi: ");
scanf("%d", &limit);
printf("Numeri primi fino a %d sono:\n", limit);
// Loop per controllare la primalità di ogni numero fino a 'limit'
for (int i = 2; i <= limit; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
Per verificarne subito il funzionamento possiamo fare copia e incolla di questo codice in un compilatore, utilizzandone uno scaricato sulla propria macchina, oppure utilizzando un compilatore C online (attenzione a copiare solo il codice, senza i numeri di riga). Ha funzionato? Bella soddisfazione, eh??
Breve spiegazione del codice C
- Righe 1 e 2. Includo le librerie necessarie, stdio.h per poter scrivere testo a schermo, stdbool.h per usare variabili booleane (vero/falso).
- Righe dalla 5 alla 11. Definisco la funzione
isPrime
che controlla se un dato numeron
è primo o meno. In pratica tramite un ciclofor
scorro tutti i numeri da 2 fino a quando il quadrato del numero è maggiore din
(non esistono divisori maggiori della radice quadrata di un dato numero) e provo a verificare se sono divisori. A tal fine utilizzo l’operatore%
che calcola il resto della divisione (se è zero è divisore). Se il numero è primo, la funzioneisPrime
restituisce il valoretrue
(vero), altrimentifalse
. - Riga 13. L’elaboratore inizia sempre ad eseguire il codice C dalla funziona
main
, che conterrà il corpo principale della procedura. - Riga 14. Definisco una variabile intera denominata
limit
, ossia una sorta di “cassettino” in memoria nella quale verrà memorizzato il valore inserito dall’utente, il numero limite entro in quale elencare i numeri primi. - Righe 15 e 16. Chiedo all’utente di inserire il limite fino al quale cercare i numeri primi.
- Riga 21. Utilizzo un ciclo
for
per passare attraverso tutti i numeri fino al limite e chiamare la funzioneisPrime
su ciascuno di essi. - Righe 22 e 23. Se il numero è primo, lo scrivo a schermo.
Vuoi imparare a scrivere altri semplici programmi in C? Ecco un corso di base.
FAQ
Il linguaggio C è un linguaggio di programmazione di basso livello, imperativo e strutturato, molto usato per lo sviluppo di software di sistema e applicazioni che richiedono prestazioni elevate, come sistemi operativi e driver di dispositivo.
Per scrivere un programma in C, si utilizza un editor di testo, come Visual Studio Code, Sublime Text o Notepad. Poi si compila il codice con un compilatore, come GCC, per trasformarlo in un eseguibile.
Per compilare programmi in C, GCC (GNU Compiler Collection) è molto nota per la sua versatilità e supporto multipiattaforma. In alternativa si può usare Clang per prestazioni ottimizzate e Microsoft Visual C++ per ambienti Windows.

Roberto Di Bartolomeo ha maturato una lunga esperienza professionale in ambito IT ed Organizzazione, rivestendo ruoli dirigenziali di CIO in grandi aziende nelle industries servizi HR, banking e pubblica amministrazione. Ingegnere elettronico, ha speso i primi anni della sua carriera in una società di consulenza internazionale ed ha conseguito un master alla Bocconi di Milano. E’ partner di EgoValeo e consulente per la Digital Transformation.