Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C++]Union

  1. #1

    [C++]Union

    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

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    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:

    codice:
    struct mioInt {
       byte uno;
       byte due;
       byte tre;
       byte quattro;
       int intero;
    };
    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.
    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:
    codice:
    |----------- intero ------------|
    |  uno  |  due  |  tre  |quattro|
    |-------------------------------|
    Spero di essere stato chiaro.

    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

  3. #3
    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

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Infatti ho sbagliato!! :gren: :gren:

    Al posto di struct nel codice ci va union.
    Ecco la versione corretta:

    Dichiari una union in questo modo:
    codice:
    union mioInt {
       byte uno;
       byte due;
       byte tre;
       byte quattro;
       int intero;
    };
    Capita...


    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.