Začátečnický dotaz na C - variant ve struktuře

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Středa Listopad 12 21:23:59 CET 2014


typedef struct {
         u16_t mavatko;
         u16_t zavazek;
} prvni_maj;

typedef struct {
         u32_t obusek;
} druhy_maj;

typedef union {

  prvni_maj m1;
  druhy_maj m2;
} maj;

A jde to napsat v ruznych kombinacich najednou.

Dne 12. 11. 2014 21:15, Petr Labaj napsal(a):
> Omlouvám a stydím se za začátečnický dotaz.
> Jak se prosím dá ve struktuře v C zapsat variantní
> přístup k proměnným?
>
> Mějme strukturu "prvni_maj", která má třeba 16bitové členy "mavatko"
> a "zavazek". Ale občas bych ke stejné adrese v paměti potřeboval
> přistupvat jako ke 32bit proměnné "obusek".
> Neřešme teď prosím edianitu.
>
> typedef struct {
>          u16_t mavatko;
>          u16_t zavazek;
> } prvni_maj;
>
> Jak udělat to, abych se na stejné místo v paměti bez nějakého přetypovávání
> mohl odkazovat jako na 32bit hodnotu, tj. aby se struktura tvářila, že má formát:
>
> typedef struct {
>          u32_t obusek;
> } prvni_maj;
>
> Tedy jak udělat něco jako alias. Unionem to předpokládám nejde, když potřebuju
> sdílet stejný datový prostor buď jako jednu velkou nebo více malých proměnných.
>
> Díky a nepohoršujte se prosím nad mými neznalostmi.
> PL
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com



Další informace o konferenci Hw-list