Questi dati che noi possiamo definire sono ovvero dati legati tra di loro da una struttura ben
definita la struttura viene collegata con typedef
Il typedef possiamo usarlo anche per le variabili semplici cosi rendendo il programma migliore in leggibilità esempio troviamo i lati di un rettangolo i lati li chiamiamo lati a e b buono , ma con typedef possiamo fare diversamente vediamo la sintassi di typedef per capire come funziona ;
typedef tipo nuovotipo ; (<- parte 1 // parte 2 ->) nuovotipo nuovonome
dove tipo è il solito tipo della variabile int, float, char ecc…. nuovo tipo il nuovo nome che collega alla variabile e ora vediamo :
typedef int rettangolo_lato_A ; rettangolo_lato_A a;
ora la variabile rettangolo_lato_A viene rinominata in a che è il nuovonome ugualmente per il lato b ;
typedef int rettangolo_lato_B ; (<-parte 1) (parte 2 ->) rettangolo_lato_B b;
Tutto questo serve per avere una leggibilità migliore del programma la parte 1 e 2 della variabile dove viene rinominata con a o b può essere inserita sia sopra che sotto il main () {
,quello che cambia è la visibilità delle variabili se le variabili sono globali va posto sopra il main , altrimenti sotto il main qui le variabili non sono globali ma locali, si consiglia sempre prima del main cosi sono globali e possono essere lette anche dentro le funzioni, se non serve meglio sotto il main cosi gira solo dentro il main
Con il typedef possiamo creare direttamente i vettori di numeri e di caratteri logicamente, la sintassi è come su solo:
typedef tipo nuovo_tipo [dimensione] ; esempio :
typedev int vettore [5] ; vettore v; ora abbiamo v[0]v[1]v[2]..
Se ci serve più vettori della stessa dimensione e uguali tipo intero o altro possiamo fare nella 2 parte :
vettore v1,v2,v3 ;
cosi abbiamo creato 3 vettori da 5 anzi che scrivere v1[5],v2[5],v3[5] ecc… inizializzare questi vettori è come al solito
v1[]{5,123,46,400,1650};
se non viene inizializzato nelle quadre [n] va messo il numero o un riferimento ad una
costante creata con un (#define n 5 )
Con il typedef possiamo creare anche le matrici come su abbiamo;
typedef float matrice [3][4] ; matrice m;
Con il typedef possiamo definire nuovi dati che magari ha una lunghezza di tot caratteri una data di gg/mm/aaaa è composta di 11 caratteri con lo ( \0 ) delle stringhe oppure i 17 caratteri di un codice fiscale , ugualmente per le targhe auto con 8 caratteri uscendo fuori dei vettori controllati
typedef char data [11] ; data dt;
Enum con enumerazioni possiamo associare dei numeri interi alle parole intanto ecco la sintassi :
enum nome_del_tipo {lista dei valori } variabile;
Ora vediamola in dettaglio :
enum settimana {lun,mar mer,gio,ven,sab,dom } giorni ;
il nome del tipo è settimana poi abbiamo i giorni dove ogni giorno è un numero intero, enum come i vettori conta da 0 pertanto : lun= 0 , mar=1 , mer=2 … dom= 6 se vogliamo cambiare i numeri basta fare ;
enum settimana {lun =1, mar, mer,gio, ecc..} giorni;
ora tutti quelli dietro il primo numero sono sequenziale partendo da 1 , se il numero era 50 per lun, mar era 51 ecc… se desideriamo i nostri numeri personalizzati basta inserirli manualmente ora possiamo vedere i confronti se mar è maggiore di lun oppure g1= lun ecc… in C non c’è il dato booleano ma possiamo costruirlo con l’ enum semplicemente
enum bol {falso,vero}boolean ;
anche in enum possiamo usare typedef cosi la parte 1 :
typedef enum {lun= 1, mar, mer, ecc: } giorni ; ( parte 2 -> ) giorni gg;
Struct usiamolo con il typedef ci fa ritrovare sotto un nuovo tipo una nuova variabile strutturata e semplice da creare, noi come sempre abbiamo le scatole in riferimento una scatola del nostro negozio può essere un giocattolo oppure una lampada oppure un tavolo secondo la descrizione, se vendiamo le auto che ci serve la marca, il modello anno di immatricolazione, il costo ecc… se vendiamo i computer ci basta marca, modello, e costo noi possiamo strutturare tutti questi dati e questi dati sotto la struct struttura può uscire, il compilatore inserisce le 2 graffe in verticale io per comodità inserisco i dati in orizzontale, nella parte 1 fare attenzione su ogni nome c’è il tipo (char marca [20] ) e i tipi possono essere diversi secondo le esigenze
typedef struct { char marca [20]; char modello[20];int costo ; } computer
( parte 2 -> ( computer c; ))
Diversamente senza typedef si poteva fare :
struct computer { char marca[20]; char modello[20] ; int costo; } ;
struct computer c ;
ora questo dato computer è collego ad una variabile nuova c , quando chiamo questa c
e inserisco il punto ‘ . ’ mi esce la lista che su avevo creato marca , modello, costo e li devo
inserire i dati , queste nuove variabili sono collegate tra loro tramite il c del typedef, e alla struct del computer ora collegato nella seconda parte creiamo un vettore c di tanti posti
computer c [10] ;
cosi abbiamo una tabella di 10 vettori collegati mediante la struttura di struct immaginiamo una tabella dei nostri clienti cosa possiamo collocare come dati: il nome cognome, l’ indirizzo, il telefono, la partita iva ,codice cliente, tipo pagamento, Iban , ecc…
Union è simile alla struct , vedo che nessuno la tratta nei testi di C che uso, ne parla solo la guida dello stesso compilatore, viene usato inserito dentro le istruzioni di struct potrebbe
avere anche un overload un sovraccarico se lo si usasse con tipi differenti di variabili , perché union usa lo stesso settore della memoria per le varie variabili dichiarate in esso e non si può usare variabili di tipo int con un tipo double cosi si crea l’ overload , la parte buona di union usando la stessa memoria usa meglio i settori della stessa memoria poi le troveremo anche nel C++ dentro la guida già ne parla di più per il suo nuovo uso dentro il C++11 è stato migliorato il suo uso ora noi rimaniamo in C perché come scritto in wikibook vedi dentro il forum la nuova cartella (Appunti sulla programmazione C++ (vuoto) ) e il suo unico collegamento guida dal C al C++, si consiglia la conoscenza del C per conoscere meglio il C++
Ciao grazie ByMpt-Zorobabele
Di questo testo dalla prefazione fino all’ 13° capitolo scritto, ho creato un testo PDF da scaricare lo trovate insieme dove rimane l’ elenco delle foto e ogni volta sarà aggiornato con i nuovi testi
[Modificato da JehovaZorobabele 18/05/2016 11:21]