3 ms·
It's an undefined behavior. Use an union: union { float f; int i; } value; value.i = intValue; float floatValue = value.f;
by lifthrasiir 3y ago
It's an undefined behavior. Use an union:
union { float f; int i; } value;
value.i = intValue;
float floatValue = value.f;
- OhMeadhbh 3y agoOnly in C++. In C, it's Unspecified.
- lifthrasiir 3y agoEven in C, incompatible object accesses are undefined, not unspecified. (`char` is a major exception.) Using `union` is explicitly allowed by ISO C for this use case; you need to use `memcpy` or `std::bit_cast` in C++ instead though.