CATEGORII DOCUMENTE |
Uniuni
In C o uniune este o zona de memorie utilizata de mai multe variabile ce pot fi diferite ca tip. Definitia uniunilor este similara celei a structurilor.
Exemplu:
union tip_u ;
O variabila de acest tip poate fi declarata fie prin plasarea numelui sau la sfirsitul acestei definitii, fie utilizand o instructiune de declarare separata. De exemplu, instructiunea :
union tip_u exuniune;
declara variabila-uniune 'exuniune' in care atat intregul i, cat si caracterul ch ocupa aceeasi zona de memorie (cu toate ca int ocupa 4 octeti, iar char numai un octet).
Cand se declara o variabila union compilatorul C rezerva o zona de memorie suficient de lunga capabila sa preia variabila cu lungimea cea mai mare.
Pentru a accesa elementele unei uniuni se utilizeaza aceeasi sintaxa folosita la structuri (operatorii punct si ' -> ').
Cand un element al unei uniuni se adreseaza direct, se utilizeaza operatorul '.', iar cand elementul se adreseaza printr-un pointer, se foloseste operatorul '-> '.
De exemplu, pentru a atribui elementul intreg i al uniunii anterioare 'exuniune' valoarea 10, se va scrie:
exuniune.i = 10;
In exemplul urmator, programul transfera un pointer la 'exuniune' unei functii :
func1(union tip_u *un)
/* se atribuie valoarea 10 intregului i al uniunii exuniune */
In C, uniunile sunt des utilizate cand sunt necesare conversii de tip. De exemplu, functia standard putw() ce realizeaza scrierea binara a unui intreg intr-un fisier de pe disc, poate fi scrisa folosind o uniune. Pentru aceasta, mai intai se creaza o uniune ce cuprinde un intreg si un vector de doua caractere, astfel:
union pw ;
Atunci, structura lui putw(), utilizand aceasta uniune este :
putw(word, fp)
union pw word; /* se declara uniunea word */
FILE *fp
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 738
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved