On Sat, Feb 20, 2010 at 06:20:26PM +0100, Zsbán Ambrus <amb...@math.bme.hu> wrote: > elements that way. The compiler warns about that because the C > standard doesn't guarantee that the rest of the elements of the struct > doesn't change how the first elements are laid out in the struct, but
To the contrary, the C standard guarantees just that, and gcc follows it. Seearch for common initial sequence. Think about it, if the C standard didn't make that guarantee, unions would be mostly useless. Don't make so certain statements about the C standard if you don't really know it - you are doing a disservice to anybody else who might be stupid enough to blindly believe you. (Sorry to be so explicit, but I get really annoyed when people argue with made-up arguments like yours - check your facts, this is easy enough to google). > that isn't likely to happen on any real system (which has abi rules so > different compilers can interoperate). In theory, one could avoid It cannot happen on any system, real or theoretic, as long as it implements C. > Incidentally, what bothers me more than these aliasing warnings is > that there's both a structure called struct ev_loop and a function > called ev_loop in the same header. Apparently C++ does allow this -- C allows it as well of course. I am not swure what others you, but the struct tag namespace and the function identifier namespace are distinct in both languages, and have been that way forever. Of course, if standard C (or C++) bothers you, maybe you could interest yourself with the perl interface, which has simpler scoping rules, albeit Perl has never been standardised. -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schm...@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ _______________________________________________ libev mailing list libev@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev