Il linguaggio C è stato sviluppato per la prima volta presso i laboratori Bell di AT&T da Dennis Ritchie nel corso degli anni 1969-1973. Inizialmente, fu creato come evoluzione del linguaggio di programmazione B, anch’esso sviluppato presso i laboratori Bell. Il linguaggio C ha guadagnato rapidamente popolarità grazie alla sua flessibilità e alle sue capacità di programmazione di basso livello.
Caratteristiche Principali del Linguaggio C:
- Portabilità:
- Una delle caratteristiche distintive del linguaggio C è la sua portabilità. Il codice scritto in C può essere eseguito su diverse piattaforme con poche o nessuna modifica. Questa portabilità è stata particolarmente importante nella scrittura di sistemi operativi, dove è essenziale che il codice possa funzionare su una varietà di hardware.
- Efficienza e Controllo Diretto sulla Memoria:
- C offre un controllo diretto sulla memoria del computer, consentendo agli sviluppatori di ottimizzare le prestazioni del codice. Questa caratteristica è utile in situazioni in cui è necessario gestire manualmente l’allocazione e la deallocazione della memoria.
- Sintassi Chiara e Concisa:
- La sintassi del linguaggio C è chiara e concisa, il che rende il codice facile da leggere e scrivere. Questa caratteristica ha contribuito alla sua popolarità e alla sua utilità in una vasta gamma di applicazioni.
- Libreria Standard:
- Il linguaggio C include una libreria standard che fornisce un set di funzioni predefinite che possono essere utilizzate per svolgere una varietà di compiti. Questa libreria standard è stata una delle chiavi del successo del linguaggio.
- Puntatori:
- Il concetto di puntatori è fondamentale nel linguaggio C. I puntatori consentono agli sviluppatori di manipolare direttamente la memoria, offrendo una flessibilità significativa nella gestione dei dati.
Applicazioni del Linguaggio C:
- Sistemi Operativi:
- Il linguaggio C è stato originariamente sviluppato per scrivere il sistema operativo UNIX. Ancora oggi, molti sistemi operativi, inclusi Linux e Windows, sono scritti in gran parte in C.
- Sviluppo di Compilatori e Interpreti:
- A causa della sua efficienza e del controllo diretto sulla memoria, il linguaggio C è spesso utilizzato per scrivere compilatori e interpreti di altri linguaggi di programmazione.
- Programmazione di Dispositivi Embedded:
- La portabilità e l’efficienza del linguaggio C lo rendono una scelta popolare per la programmazione di dispositivi embedded, come microcontrollori e sistemi embedded.
- Applicazioni di Sistema e Software di Basso Livello:
- Il linguaggio C è ampiamente utilizzato per lo sviluppo di applicazioni di sistema, driver di dispositivo e software di basso livello che richiedono un controllo dettagliato sull’hardware.
- Sviluppo di Applicazioni Desktop e Software di Rete:
- Molti programmi desktop e software di rete sono stati sviluppati utilizzando il linguaggio C, grazie alla sua potenza e alla sua capacità di gestire operazioni di basso livello.
Le caratteristiche principali di questo linguaggio sono:
– innanzitutto è case sensitive, ovvero distingue tra lettere maiuscole e minuscole;
– poi è general purpose (multiuso) ovvero può essere impiegato per codificare progetti software di natura diversa;
– il linguaggio C è anche multi-piattaforma;
– è un linguaggio strutturato di tipo imperativo (o procedurale);
– inoltre produce programmi efficienti, infatti è nato per implementare sistemi operativi;
– produce anche codice di dimensioni ridotte, ha infatti una sintassi che si presta alla scrittura di codice compatto.
Struttura di un programma in linguaggio C
In un programma scritto in C vi è una funzione che deve essere sempre presente, che è la funzione main(). Il compilatore infatti inizia l’esecuzione proprio da questa funzione.
La sintassi della funzione main è la seguente:
#include <stdio.h> // Dichiarazione delle librerie
int main() { // Funzione principale
// Dichiarazioni di variabili
// Istruzioni del programma
return 0; // Indica che il programma è stato eseguito con successo
}
Tutto il codice contenuto tra le due parentesi graffe rappresenta il corpo del programma. All’interno del main si possono inserire chiaramente una o più istruzioni, terminanti da una carattere punto e virgola.
Facciamo dunque il primissimo esempio di programma in linguaggio C che dà semplicemente un messaggio di benvenuto all’utente:
#include <stdio.h>
int main() {
printf("Benvenuti da Coding Creativo");
}
Quindi in questo semplicissimo programma in C abbiamo utilizzato:
#include <stdio.h>
:- Questa è una direttiva di pre-processore che dice al compilatore di includere il file di intestazione
stdio.h
. Questo file contiene dichiarazioni necessarie per funzioni di input/output standard comeprintf
escanf
. È una pratica comune includerestdio.h
all’inizio di un programma C.
- Questa è una direttiva di pre-processore che dice al compilatore di includere il file di intestazione
main() { ... }
:main
è una funzione speciale nel linguaggio C. È la funzione principale che viene eseguita quando il programma viene avviato. Tuttavia, la firma corretta della funzionemain
èint main(void)
oint main(int argc, char *argv[])
. Il tuo codice utilizza una forma più antica che implicitamente assume un tipo di ritorno diint
.
printf("Benvenuti da Coding Creativo");
:printf
è una funzione di output standard che consente di stampare testo sullo schermo. Nel tuo caso, sta stampando la stringa “Benvenuti da Coding Creativo”.
- Tipo di Ritorno di
main
:- È buona pratica dichiarare il tipo di ritorno di
main
comeint
e includere una dichiarazione di ritorno, ad esempioreturn 0;
, per indicare che il programma è stato eseguito con successo.
- È buona pratica dichiarare il tipo di ritorno di
Nelle prossime lezioni, esploreremo dettagliatamente il concetto di variabili e costanti nel linguaggio C e impareremo come utilizzarle per creare programmi semplici. Approfondiremo la dichiarazione, l’inizializzazione e l’utilizzo di variabili, nonché la corretta gestione di costanti. Questi concetti fondamentali ci forniranno le basi necessarie per realizzare programmi più complessi e versatili. Continuate a seguirmi per imparare a sfruttare appieno il potenziale del linguaggio C.
Alcuni link utili
Indice argomenti sul linguaggio C
Realizzare un menù di scelta in C
Somma elementi diagonale principale di una matrice
Come sommare gli elementi della cornice esterna