{"id":188,"date":"2010-02-22T01:01:00","date_gmt":"2010-02-22T01:01:00","guid":{"rendered":"http:\/\/e-ware.org\/blog\/?p=188"},"modified":"2010-02-22T01:01:00","modified_gmt":"2010-02-22T01:01:00","slug":"didattica-c-typedef","status":"publish","type":"post","link":"http:\/\/e-ware.org\/blog\/didattica-c-typedef\/","title":{"rendered":"Didattica C: typedef"},"content":{"rendered":"<div><span><br \/><\/span><\/div>\n<div><b><span>Typedef<\/span><\/b><span> \u00e8 una di quelle funzioni del C che a prima vista appare insensata ma che nel corso della propria programmazione si rivela essere lo strumentino di cui non si fa pi\u00f9 a meno.<\/span><\/div>\n<div><span>Typedef \u00e8 una particolare istruzione che permette di assegnare una nuova etichetta ad un tipo gi\u00e0 esistente o ad uno creato mediante struttura o enumerazione. La sua versatilit\u00e0 ci permette di creare variabili  del tipo definito, dichiarandole con la sintassi che si userebbe per i dati di tipo standard.<\/span><\/div>\n<div><span><br \/><\/span><\/div>\n<div><span>Immaginiamo, ad esempio, di voler rinominare il tipo di dati <\/span><b><span>int<\/span><\/b><span> con <\/span><b><span>INTERO<\/span><\/b><span> poich\u00e8 siamo italiani e ci piace cos\u00ec e di voler creare una variabile di nome <\/span><b><span>numero<\/span><\/b><span> proprio di tipo int inizializzata al valore 5. Ci\u00f2 \u00e8 possibile semplicemente con il codice:<\/span><\/div>\n<div><span><br \/><\/span><\/div>\n<div><span>typedef int INTERO;<\/span><\/div>\n<div><span>INTERO numero = 5;<\/span><\/div>\n<div><span><br \/><\/span><\/div>\n<div><span>L&#8217;utilizzo di tale istruzione \u00e8 possibile anche con strutture o gruppi enumerativi.<\/span><\/div>\n<div><span>Un esempio di codice pu\u00f2 essere:<\/span><\/div>\n<div><span><br \/><\/span><\/div>\n<div><i><span>\/\/ definizione struttura<\/span><\/i><\/div>\n<div><i><span>struct mia_struttura{ &#8230; valori&#8230;. };<\/span><\/i><\/div>\n<div><i><span>\/\/ definizione del nuovo tipo<\/span><\/i><\/div>\n<div><i><span>typedef struct mia_struttura STRUTTURA;<\/span><\/i><\/div>\n<div><i><span>\/\/ creazione nuova struttura<\/span><\/i><\/div>\n<div><i><span>STRUTTURA new_struttura;<\/span><\/i><\/div>\n<div><span><br \/><\/span><\/div>\n<div><span>o<\/span><\/div>\n<div><span><br \/><\/span><\/div>\n<div><i><span>\/\/ definizione enumerazione<\/span><\/i><\/div>\n<div><i><span>enum mio_enum { &#8230; valori da definire &#8230;};<\/span><\/i><\/div>\n<div><i><span>\/\/ definizione del nuovo tipo<\/span><\/i><\/div>\n<div><i><span>typedef enum mio_enum ENUMERAZIONE<\/span><\/i><\/div>\n<div><i><span>\/\/ creazione nuova enumerazione<\/span><\/i><\/div>\n<div><i><span>ENUMERAZIONE new_enum;<\/span><\/i><\/div>\n<div><span><br \/><\/span><\/div>\n<div><span>Questa istruzione non richiede particolari trattamenti poich\u00e8 \u00e8 abbastanza semplice da utilizzare e da comprendere. \u00c8 da precisare che typedef pu\u00f2 essere utilizzato anche nello stesso momento in cui si crea, ad esempio una nuova struttura o enumerazione.<\/span><\/div>\n<div><span><br \/><\/span><\/div>\n<div><span>Evidenzio, come sicuramente si sar\u00e0 gi\u00e0 notato, che le etichette attribuite mediante typedef sono scritte in maiuscolo. Questa non \u00e8 una regola o un&#8217;esigenza del codice ma \u00e8 una prassi tra i programmatori per permettere ai nuovi tipi di dati di essere subito distinguibili da quelli standard in modo da rendere il codice comprensibile.<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Typedef \u00e8 una di quelle funzioni del C che a prima vista appare insensata ma che nel corso della propria programmazione si rivela essere lo strumentino di cui non si fa pi\u00f9 a meno. Typedef \u00e8 una particolare istruzione che permette di assegnare una nuova etichetta ad un tipo gi\u00e0 esistente o ad uno creato [&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-188","post","type-post","status-publish","format-standard","hentry","category-c","category-didattica","category-opencode"],"views":961,"_links":{"self":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/188","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=188"}],"version-history":[{"count":0,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/188\/revisions"}],"wp:attachment":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/media?parent=188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/categories?post=188"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/tags?post=188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}