In my embedded development, I have trained myself to use unions instead of type-punned-pointer casts to access one data type as another.
This document says this is a GCC-specific extension. Is this true? Or is it one of those things that's not standardized, but the compiler vendors all do it anyway?