It is probably still unwise in C as well in this case because the layout of bits in a bitfield is still implementation defined, and varied based on endianness of the uint64 for example
What is the alternative? Are there functions in the C standard to get mantissa and exponent?
Frexp modf. Last time I checked code generation wasn't particularly good.
I already mentioned the alternative. memcpy() into a char array.
Memcpy doesnt fix endianess
It was never claimed to deal with endianness and while we're on the subject of binary-layout, union-based binary manipulation is even worse on that front as no specific binary layout is mandated for structures or floating points.