Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sposób definicji unii

Ostatnio zmodyfikowano 2013-03-07 19:57
Autor Wiadomość
marecki
Temat założony przez niniejszego użytkownika
Sposób definicji unii
» 2013-03-06 18:28:38
Czym różnią się te dwa sposoby deklaracji unii? Czy może różni je tylko sposób zapisu? Jeśli coś je różni to w jakim przypadku stosować pierwszy sposób a kiedy drugi?

SPOSÓB 1

C/C++
typedef union {
    int liczba;
    char znak;
} TYP_UNIA;

int main()
{
    TYP_UNIA UNIA;
    UNIA.liczba = 12;
    UNIA.znak = 'a';
   
    return 0;
}

SPOSÓB 2

C/C++
union unia {
    int liczba;
    char znak;
};

int main()
{
    unia UNIA;
    UNIA.liczba = 12;
    UNIA.znak = 'a';
    return 0;
}
P-77821
Navvroth
» 2013-03-07 14:27:45
Myślę że ta odpowiedz cię zadowoli na wiki http://pl.wikipedia.org/wiki/Unia_%28programowanie%29 szukaj google jak masz pytanie najpierw ;)
P-77860
Savail
» 2013-03-07 16:17:04
@up, tylko że w linku powyżej nie ma odpowiedzi na pytanie autora...

W sposobie pierwszym tworzysz nowy własny typ zmiennej (TYP_UNIA) - poczytaj o typedef. W drugim sposobie tworzysz po prostu unię
P-77863
Monika90
» 2013-03-07 19:57:28
Język C ma odrębną przestrzeń nazw dla typów, które sa strukturami lub uniami. Jeśli definiujesz unię w ten sposób:
C/C++
union U { };
to gdy używasz jej nazwy musisz poprzedzać ją słowem
union
C/C++
union U u1; //deklaracja zmienej typu U
natomiast w sposobie numer 1,
typedef
 dodaje nazwę typu do globalnej przestrzeni nazw:
C/C++
typedef union { } U;
więc można używać po prostu tak:
C/C++
U u1; //deklaracja zmienej typu U

W języku C++ nie ma praktycznej różnicy między tymi sposobami, unia czy struktura będzie w tej przestrzeni nazw, w której znajduje się jej deklaracja. Zatem w C++ nalezy używać sposobu numer 2, bo jest prostszy i naturalny.
P-77869
« 1 »
  Strona 1 z 1