{"id":190,"date":"2010-02-17T01:22:00","date_gmt":"2010-02-17T01:22:00","guid":{"rendered":"http:\/\/e-ware.org\/blog\/?p=190"},"modified":"2010-02-17T01:22:00","modified_gmt":"2010-02-17T01:22:00","slug":"boolean-in-c","status":"publish","type":"post","link":"http:\/\/e-ware.org\/blog\/boolean-in-c\/","title":{"rendered":"Boolean in C."},"content":{"rendered":"<div><span><br \/>Mentre mi scrivevo un semplice applicativo in C ho incontrato la necessita di utilizzare, pi\u00f9 per logica che per vera vitale importanza, variabili di tipo booleane che non sono contemplate tra i tipi di dati di questo linguaggio.<\/span><\/p>\n<p><span>Per chi non lo sapesse le variabili booleane sono i pi\u00f9 semplici tipi di dati e possono assumere solo due valori logici, <\/span><span>VERO<\/span><span> o <\/span><span>FALSO<\/span><span> 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 <\/span><span>Algebra di Bool<\/span><span> o <\/span><span>Algebra Booleana<\/span><span> che consta di proprie funzioni, propriet\u00e0 e operazioni.<\/span><\/p>\n<p><span>Ci tengo a precisare che una delle caratteristiche del C \u00e8 che lo zero viene sempre riconosciuto come FALSO mentre ogni altro valore ha validit\u00e0 logica VERA. Questo vuol dire che in modo intrinseco il linguaggio ha gi\u00e0 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&#8217;occhio un codice a me pi\u00f9 famigliare. Il problema \u00e8 stato risolto in modo davvero facile ed indolore; \u00e8 bastato ricorrere all&#8217;enumerazione e alla definizione di tipo che il C mette a disposizione: ovvero <\/span><span>enum<\/span><span> e <\/span><span>typedef<\/span><span>.<\/span><\/p>\n<p><span>Per maggiori informazioni su enum vi rimando a <a href=\"http:\/\/soluzionisoftware.blogspot.com\/2010\/02\/didattica-c-enumerazione.html\">QUESTO<\/a> post mentre per typedef a <a href=\"http:\/\/soluzionisoftware.blogspot.com\/2010\/02\/didattica-c-typedef.html\">QUESTO<\/a>.<\/span><\/p>\n<p><span>La porzione di codice che ho usato \u00e8 la seguente:<\/span><\/p>\n<\/div>\n<div><span><span>typedef enum {false, true} boolean;<\/span><\/span><\/p>\n<\/div>\n<p><span>Si nota come false avr\u00e0 valore intero 0 mentre true il valore intero immediatamente successivo, ovvero 1.<\/span><\/p>\n<div><span>Con questo sistema<\/span><span> <\/span><span>ho potuto dichiarare una mia variabile di nome bool inizializzata al valore false, con la sintassi:<\/span><\/p>\n<\/div>\n<div><span><span>boolean bool=false;<\/span><\/span><\/p>\n<\/div>\n<p><span>e l&#8217;ho potuta usare e testare quando necessario senza problemi.<\/span><\/p>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Mentre mi scrivevo un semplice applicativo in C ho incontrato la necessita di utilizzare, pi\u00f9 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\u00f9 semplici tipi di dati e possono [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54,52,4],"tags":[],"class_list":["post-190","post","type-post","status-publish","format-standard","hentry","category-c","category-didattica","category-opencode"],"views":1610,"_links":{"self":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/comments?post=190"}],"version-history":[{"count":0,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/190\/revisions"}],"wp:attachment":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/media?parent=190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/categories?post=190"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/tags?post=190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}