Chi mi spiega come funziano le union che nn lo ho ben capito?
Chi mi spiega come funziano le union che nn lo ho ben capito?
La stupidità umana e l'universo sono infinite.
Della seconda non sono certo(Einstein)
Gnu/Linux User
Le Union sono delle particolari strutture dati che hanno un po' del Record (Struct).
Servono per far in modo che 2 o più variabili condividano la stessa area di memoria (in altre parole, per poter accedere alla stessa area di memoria con due tipi di dati differenti, in base alle esigenze).
Ti faccio un esempio: supponi di avere un int a 4 byte.
Quando tu allochi una variabile int, viene allocata una memoria tale da poterla contenere: 4 byte. Ora, supponi di voler sapere esattamente il valore di ogni singolo byte di quei 4.
Bene: dichiari una struct in questo modo:
In questo modo, la variabile intero (dichiarata di tipo int) occupa 4 byte e a condividere questa locazione ci sono anche le 4 variabili di tipo byte.codice:struct mioInt { byte uno; byte due; byte tre; byte quattro; int intero; };
Tu puoi così accedere ad ogni singolo byte di quell'intero semplicemente facendo riferimento al membro uno, due, tre e quattro della struct.
Un disegno dovrebbe aiutare:
Spero di essere stato chiaro.codice:|----------- intero ------------| | uno | due | tre |quattro| |-------------------------------|
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
tnk!
Ma nel tuo code .................. nn vedo la parola union
La stupidità umana e l'universo sono infinite.
Della seconda non sono certo(Einstein)
Gnu/Linux User
Infatti ho sbagliato!! :gren: :gren:
Al posto di struct nel codice ci va union.
Ecco la versione corretta:
Dichiari una union in questo modo:
Capita...codice:union mioInt { byte uno; byte due; byte tre; byte quattro; int intero; };
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza