Programmazione

Il Tipo Booleano

Il Tipo Booleano nel Linguaggio C: scopri l'evoluzione dai valori interi 0/1 (C89) all'introduzione della libreria stdbool.h (C99), con il tipo bool e le costanti true e false.

Il Tipo Booleano nel Linguaggio C

Argomenti: evoluzione da C89 a C99, libreria <stdbool.h>, tipo bool, costanti true e false, valutazione di verità

I valori booleani (Vero e Falso) sono alla base della logica di controllo nei programmi. Tuttavia, il linguaggio C ha una storia particolare: originariamente non possedeva un tipo di dato booleano dedicato, introducendolo ufficialmente solo a partire dallo standard C99.

1. L'Evoluzione dei Booleani in C

Confronto: Dal C Classico (C89) al C Moderno (C99 e successivi)

C Classico (C89 / C90)

Non esisteva alcun tipo booleano nativo. Si utilizzavano direttamente i numeri interi (int):

  • 0 rappresenta Falso (False).
  • Qualsiasi valore diverso da 0 (1, -5, 100) rappresenta Vero (True).

C Moderno (C99 e successivi)

È stato introdotto il tipo nativo _Bool e l'header standard <stdbool.h>, che mette a disposizione:

  • Il tipo di dato bool.
  • Le costanti true (valore 1) e false (valore 0).

2. Utilizzo Pratico con <stdbool.h>

Sintassi Standard: Includere l'header e gestire variabili booleane

Esempio Pratico (main.c):
1 #include <stdio.h>
2 #include <stdbool.h> // Abilita bool, true e false
3
4 int main(void) {
5     // Dichiarazione ed inizializzazione
6     bool eMaggiorenne = true;
7     bool haPatente = false;
8
9     if (eMaggiorenne && !haPatente) {
10         printf("Puoi fare l'esame per la patente! ");
11     }
12
13     // Stampa numerica del valore booleano
14     printf("eMaggiorenne vale: %d ", eMaggiorenne); // Stampa 1
15     printf("haPatente vale: %d ", haPatente); // Stampa 0
16
17     return 0;
18 }
Dettagli e Regole Principali:
  • Libreria obbligatoria (riga 2): Senza #include <stdbool.h> il compilatore non riconoscerà la parola chiave bool.
  • Valori interni: Sotto il cofano, true è semplicemente una costante pari a 1 e false è pari a 0.
  • Specificatore di stampa (righe 14-15): Per stampare un booleano con printf si usa %d (intero decimal), che mostrerà 1 o 0.
  • Operatori logici (riga 9): Si usano con gli operatori standard (&& AND, || OR, ! NOT).

Osservazione: Come valuta il C le condizioni?

Anche lavorando con <stdbool.h>, la regola fondamentale del C rimane invariata: all'interno di un'istruzione condizionale (es. if (condizione)), qualsiasi espressione che restituisce un valore diverso da zero viene sempre interpretata come Vero, mentre soltanto lo zero viene interpretato come Falso.