hard20 pts · first answer countsembedded-cundefined-behaviour
Reading a float as uint32_t
This code reads the bits of a float. Why can it give wrong results at -O2, and what is the safe way?
float f = read_sensor(); uint32_t bits = *(uint32_t *)&f;
Discussion 0
Join free to post in the discussion.
Related questions
- Why use volatileEmbedded Systems Engineer
- Setting a register bitEmbedded Systems Engineer
- Reading a hex register valueEmbedded Systems Engineer
- Adding to a uint8_t counterEmbedded Systems Engineer
- Where const goes in a pointerEmbedded Systems Engineer
- A static local counterEmbedded Systems Engineer
- Why a cross-compilerEmbedded Systems Engineer
- Keeping a table out of RAMEmbedded Systems Engineer