{"id":189,"date":"2010-02-18T00:46:00","date_gmt":"2010-02-18T00:46:00","guid":{"rendered":"http:\/\/e-ware.org\/blog\/?p=189"},"modified":"2010-02-18T00:46:00","modified_gmt":"2010-02-18T00:46:00","slug":"didattica-c-enumerazione","status":"publish","type":"post","link":"http:\/\/e-ware.org\/blog\/didattica-c-enumerazione\/","title":{"rendered":"Didattica C: enumerazione"},"content":{"rendered":"<div><span>Con l&#8217;enumerazione si ha la possibilit\u00e0 di creare gruppi enumerativi ovvero di dare il nome ad un insieme finito di voci associando un nome univoco ad ognuno di essi.<\/p>\n<p>La sintassi di tale funzione \u00e8:<\/p>\n<p><\/span><\/p>\n<div><span>enum mio_tipo {voce1, voce2, voce3, &#8230;,vocen};<\/span><\/div>\n<p><span><br \/>con la quale si crea il tipo con l&#8217;<span>etichetta<\/span> (o <span>tag<\/span>) <span>mio_tipo<\/span> e gli identificatori <span>voce1<\/span>, <span>voce2<\/span>, <span>&#8230;<\/span>, <span>vocen<\/span> che sono in realt\u00e0 delle costanti di tipo int. Voce1 (cio\u00e8 il primo identificatore) ha valore 0 mentre quelli che seguono assumo il valore intero successivo.<br \/>Dopo aver creato <span>mio_dato<\/span> abbiamo bisogno di associare una nuova variabile a questo tipo per sfruttarne le potenzialit\u00e0. D&#8217;ora in avanti, infatti, l&#8217;enumerativo <span>mio_tipo<\/span> potr\u00e0 essere considerato , su per gi\u00f9, un tipo di dato proprio come lo sono, ad esempio, char, int o float.<\/p>\n<p>La sua definizione avviene con la seguente sintassi:<\/p>\n<p><\/span><\/p>\n<div><span>enum mio_tipo dato;<\/span><\/div>\n<p><span><br \/>mediante la quale <span>dato<\/span> sar\u00e0 di tipo <span>mio_tipo<\/span>.<\/p>\n<p>Ad ogni variabile alla quale si impone un tipo enumerativo, si potranno assegnare solo valori facenti parte del gruppo in questione. Quindi un esempio di dichiarazione in questo caso potrebbe essere<\/p>\n<p><\/span><\/p>\n<div><span>dato = voce3;<\/span><\/div>\n<p><span><br \/>oppure<\/p>\n<p><\/span><\/p>\n<div><span>if (dato == voce2) printf(&#8220;Definizione enumerativa&#8221;);<\/span><\/div>\n<p><span><br \/>L&#8217;inizializzazione degli identificatori, come detto, \u00e8 di default posta a 0. Esso infatti sar\u00e0 il valore intero associato al primo identificatore del gruppo. Tuttavia questa struttura pu\u00f2 essere modifica in maniera del tutto personale. In questo codice di esempio:<\/p>\n<p><\/span><\/p>\n<div><span>enum giorni{lun=1, mar, mer, gio, ven, sab, dom}<\/span>;<\/div>\n<p><span><br \/>gli identificatori sono inizializzati ad 1 e tutti quelli che seguono avranno valore intero successivo crescente.<br \/>Questo esempio pu\u00f2 anche essere esteso ed \u00e8 possibile assegnare i valori voluti, ad ogni costante del gruppo o ad alcune di esse, anche se essi non sono in ordine crescente.<br \/>Ad esempio<\/p>\n<p><\/span><\/p>\n<div><span>enum giorni{lun=1, mar, mer, gio=5, ven, sab, dom=13}<\/span>;<\/div>\n<p><span><br \/>e<\/p>\n<p><\/span><\/p>\n<div><span>enum giorni{lun=1, mar=9, mer=0, gio=5, ven=4, sab=2, dom=3}<\/span>;<\/div>\n<p><span><br \/>sono entrambi esempi validi che rispettano gli standard e le possibilit\u00e0 e non restituiscono nessun errore.<br \/>C&#8217;\u00e8 da specificare che \u00e8 possibile dichiarare costanti nel gruppo con lo stesso valore intero ma non \u00e8 possibile ne dichiarare due o pi\u00f9 gruppi con lo stesso nome o costanti dello stesso gruppo con lo stesso nome.<\/p>\n<p>Finisco con una piccola curiosit\u00e0. \u00c8 possibile dichiarare subito una variabile con un gruppo enumerativo nello stesso momento in qui esso viene creato. Con la sintassi<\/p>\n<p><\/span><\/p>\n<div><span>enum frutta {mele, pere, kiwi} frt;<\/span><\/div>\n<p><span><br \/>si crea una variabile <span>frt<\/span> di tipo <span>frutta<\/span>.<\/p>\n<p><\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Con l&#8217;enumerazione si ha la possibilit\u00e0 di creare gruppi enumerativi ovvero di dare il nome ad un insieme finito di voci associando un nome univoco ad ognuno di essi. La sintassi di tale funzione \u00e8: enum mio_tipo {voce1, voce2, voce3, &#8230;,vocen}; con la quale si crea il tipo con l&#8217;etichetta (o tag) mio_tipo e gli [&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-189","post","type-post","status-publish","format-standard","hentry","category-c","category-didattica","category-opencode"],"views":997,"_links":{"self":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/189","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=189"}],"version-history":[{"count":0,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/189\/revisions"}],"wp:attachment":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/media?parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/categories?post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/tags?post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}