C: char -> int

Ondrej leguanolog na seznam.cz
Středa Květen 12 13:11:13 CEST 2010


add 3 - tak jaký má pak ta unie smysl, když změna jednoho prvku může 
přepsat ostatní?

Dne 12.5.2010 12:22, Jan Waclawek napsal(a):
> Napriek tomu, ze sa to casto robi a aj ja to tak robim, union{ int a; char b[sizeof(a)]} ani union{ int a; struct {char b0, b1, b2, b3;}} na konverziu typov nedoporucujem, lebo:
>
> 1. prvky pola ako aj prvky structu mozu byt zarovnane ako kompilator chce, t.j. nemusia lezat v za sebou nasledujucich byte
> 2. endianita viacbytoveho typu je ako kompilator chce
> 3. podla normy, po zapise do jedneho prvku unionu maju ostatne prvky nedefinovany obsah (6.2.6.1#7)
>
> Aj ked sa obvykle ako problem cituje 2. (ktory sa da obist sadou makier pre rozne endianity) a obcas 1 (na ktore zase ma napr. gcc nestandardny atribut __packed__), podla mna je najzakernejsi problem 3 (ktory je pomerne neznamy, a moze sa prejavit napr. ako nasledok optimalizacie).
>
> wek
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>    

-- 
Jabber: Iguaner na jabber.cz
ICQ: 122712466

---------------------------------------------------
|                                                 |
|       IKORAS - My home-made MP3 player          |
|       http://ikoras.iglu.cz                     |
|                                                 |
---------------------------------------------------



More information about the Hw-list mailing list