Florian Weimer <f...@deneb.enyo.de> writes: > * Joshua Haberman: > >> To me this allows the following: >> >> int i; >> union u { int x; } *pu = (union u*)&i; >> printf("%d\n", pu->x); > > I think the cast on the secodn line is undefined,
Only if union u has stricter alignment requirements than int; otherwise you are guaranteed to get back the original pointer when casting back to int*. Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."