TRASLOCO
Sempre mosso dalla voglia di allontanarmi da Google e dai suoi servizi, ho finalmente deciso che dopo diversi anni la piattaforma di questo piccolo spazio andava cambiata. Finalmente il blo cambia casa. Se volete trovarmi potete recarvi al nuovo indirizzo

mercoledì 17 febbraio 2010

Boolean in C.


Mentre mi scrivevo un semplice applicativo in C ho incontrato la necessita di utilizzare, più per logica che per vera vitale importanza, variabili di tipo booleane che non sono contemplate tra i tipi di dati di questo linguaggio.


Per chi non lo sapesse le variabili booleane sono i più semplici tipi di dati e possono assumere solo due valori logici, VERO o FALSO che convenzionalmente vengono, rispettivamente, indicati come 1 o 0 logico. Questi tipi di variabile fanno parte di una branca della matematica che prende il nome di Algebra di Bool o Algebra Booleana che consta di proprie funzioni, proprietà e operazioni.

Ci tengo a precisare che una delle caratteristiche del C è che lo zero viene sempre riconosciuto come FALSO mentre ogni altro valore ha validità logica VERA. Questo vuol dire che in modo intrinseco il linguaggio ha già una sua struttura booleana. Tuttavia mi trovavo difronte ad una scelta stilistica che mi avrebbe permesso, viste le mie abitudini con altri linguaggi, di avere sott'occhio un codice a me più famigliare. Il problema è stato risolto in modo davvero facile ed indolore; è bastato ricorrere all'enumerazione e alla definizione di tipo che il C mette a disposizione: ovvero enum e typedef.

Per maggiori informazioni su enum vi rimando a QUESTO post mentre per typedef a QUESTO.

La porzione di codice che ho usato è la seguente:

typedef enum {false, true} boolean;

Si nota come false avrà valore intero 0 mentre true il valore intero immediatamente successivo, ovvero 1.

Con questo sistema ho potuto dichiarare una mia variabile di nome bool inizializzata al valore false, con la sintassi:

boolean bool=false;

e l'ho potuta usare e testare quando necessario senza problemi.