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.

Durata

15 minuti

Software

Compiler C / GCC / Dev-C++ / VS Code

Linguaggio

Linguaggio C

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.


In sintesi

Argomenti: concetti principali, riepilogo, competenze

  1. Originariamente in C (C89) non esisteva il tipo booleano: 0 rappresentava Falso e qualsiasi valore diverso da 0 rappresentava Vero.
  2. Dallo standard C99 è stato introdotto il tipo nativo _Bool e la libreria standard <stdbool.h>.
  3. Con <stdbool.h> è possibile utilizzare le parole chiave bool, true (1) e false (0).

Cosa hai imparato
  1. Distinguere l'approccio storico (int 0/1) da quello moderno (<stdbool.h>).
  2. Includere la libreria stdbool.h per dichiarare variabili di tipo bool.
  3. Stampare variabili booleane tramite lo specificatore %d (output 1 o 0).
  4. Applicare i booleani nelle istruzioni condizionali (if/else).


Linguaggio C, Booleani, stdbool.h, bool, true, false, C99, Logica,