Unia (programowanie)
Z Wikipedii
Unia - typ danych w niektórych niskopoziomowych językach programowania, jak C, lub asembler, grupujący wiele różnych sposobów interpretacji tego samego fragmentu pamięci. Odpowiednikiem unii w języku Pascal jest rekord z wariantami.
Unia jest podobna do struktury, jednak wszystkie pola zajmują ten sam obszar pamięci.
Przykładowo unia:
union nazwa_unii {
char tablica_znakowa[4];
int wartosc;
} u;
tworzy zmienną u, do której można mieć dostęp albo jako do liczby (u.wartosc), albo jako do tablicy znaków (u.tablica_znakowa).
Tego typu manewry są czasem przydatne w niskopoziomowym programowaniu. Użycie unii nie jest jednak zalecane w innych wypadkach, gdyż jest wybitnie wrażliwe na różnice w reprezentacji poszczególnych typów w pamięci. Ten sam program, używający unii może zupełnie inaczej działać w zależności od tego, czy liczby są zapisywane jako big endian, czy little endian i jaką mają długość w bajtach:
u.wartosc=0x44434241;
W u.tablica_znakowa znalazł się napis:
- 'ABCD' w przypadku procesora Intel, kompilator 32-bitowy
- 'AB' w przypadku procesora Intel, kompilator 16-bitowy dla DOSu
- 'DCBA' w przypadku procesora Motorola,
[edytuj] Struktury jako pola unii
Elementami unii mogą być struktury, co czasem jest przydatne:
union liczba {
struct {
unsigned int a :8;
unsigned int b :8;
unsigned int c :8;
unsigned int d :8;
} rozbicie_na_bajty;
struct {
unsigned int a :16;
unsigned int b :16;
} rozbicie_na_slowa;
unsigned int liczba;
};
[edytuj] Unie anonimowe
C++ dopuszcza tzw unie anonimowe w których nie ma ani nazwy unii, ani nazwy zmiennej:
union {
int liczba;
char znak;
};
Do pól takiej unii można dostawać się bezpośrednio używając ich nazw (np. liczba lub znak z przykładu powyżej). Czasem ten mechanizm jest stosowany przy umieszczaniu unii anonimowej jako pola struktury.
| Bin Laden na święto Izraela |
Będzie nowe nagranie szefa Al-Kaidy Osamy Bin Ladena. Tematem będzie 60 rocznica powstania Izraela - podała jedna ze amerykańskich stron internetowych monitorująca treści terrorystyczne. Nagranie ma ujrzeć światło dzienne w ciągu 72 godzin.
|
| Rozmowy o tarczy na kamiennej ławeczce |
- Zapadły pewne konkrety organizacyjne w sprawie tarczy antyrakietowej - poinformował Lech Kaczyński po spotkaniu z George'm W. Bushem w Jerozolimie. Prezydent "poskarżył się" też, że rozmowa, która dotyczyła także Gruzji, toczyła się przy lodowatym wietrze na kamiennej ławeczce.
|
| Konflikt Bush - Obama z PolskÄ… w tle |
Rozmawiać z terrorystami to tak, jakby próbować powstrzymać Hitlera przed atakiem na Polskę - tak George Bush podsumował zapowiedzi Baracka Obamy, że zamierza rozmawiać z przywódcami państw wrogich USA. Na dodatek zrobił to w Knesecie, w przemówieniu krytykującym politykę appeasmentu. Na odpowiedź Obamy nie trzeba było długo czekać.
|
| PrzeproszÄ… za "polskie obozy koncentracyjne" |
Minister Radosław Sikorski rozmawiał z brytyjskim ambasadorem w Polsce na temat publikacji północnoirlandzkiego "Tyrone Courier" - mówi tvn24.pl rzecznik MSZ Piotr Paszkowski. W środę gazeta wydrukowała relację z wizyty w "polskich obozach koncentracyjnych". Wydawca gazety zapewnił w rozmowie z dziennik.pl, że przeprosi Polaków za to stwierdzenie.
|
| Zobacz Donalda Tuska na Machu Picchu |
Zapierające dech w piersiach widoki, niezwykła architektura i serdeczne przyjęcie przez przez potomków Inków. Premier Donald Tusk razem z żoną Małgorzatą zwiedzał ruiny słynnego miasta Inków Machu Picchu.
|
Będzie nowe nagranie szefa Al-Kaidy Osamy Bin Ladena. Tematem będzie 60 rocznica powstania Izraela - podała jedna ze amerykańskich stron internetowych monitorująca treści terrorystyczne. Nagranie ma ujrzeć światło dzienne w ciągu 72 godzin.
- Zapadły pewne konkrety organizacyjne w sprawie tarczy antyrakietowej - poinformował Lech Kaczyński po spotkaniu z George'm W. Bushem w Jerozolimie. Prezydent "poskarżył się" też, że rozmowa, która dotyczyła także Gruzji, toczyła się przy lodowatym wietrze na kamiennej ławeczce.
Rozmawiać z terrorystami to tak, jakby próbować powstrzymać Hitlera przed atakiem na Polskę - tak George Bush podsumował zapowiedzi Baracka Obamy, że zamierza rozmawiać z przywódcami państw wrogich USA. Na dodatek zrobił to w Knesecie, w przemówieniu krytykującym politykę appeasmentu. Na odpowiedź Obamy nie trzeba było długo czekać.
Minister Radosław Sikorski rozmawiał z brytyjskim ambasadorem w Polsce na temat publikacji północnoirlandzkiego "Tyrone Courier" - mówi tvn24.pl rzecznik MSZ Piotr Paszkowski. W środę gazeta wydrukowała relację z wizyty w "polskich obozach koncentracyjnych". Wydawca gazety zapewnił w rozmowie z dziennik.pl, że przeprosi Polaków za to stwierdzenie.
Zapierające dech w piersiach widoki, niezwykła architektura i serdeczne przyjęcie przez przez potomków Inków. Premier Donald Tusk razem z żoną Małgorzatą zwiedzał ruiny słynnego miasta Inków Machu Picchu.