Por favor, considere el siguiente código:evitar la trampa de representación con memcpy
float float_value = x; // x is any valid float value
int int_value = 0;
size_t size = sizeof(int) < sizeof(float) ? sizeof(int) : sizeof(float);
memcpy(&int_value, &float_value, size);
Por lo que yo sé que esto podría resultar en una representación trampa. Mis preguntas:
- ¿Es eso cierto?
- Si no, ¿por qué?
- Si no, ¿hay alguna otra manera de evitar una posible representación de trampas?
Básicamente parece un mal comportamiento indefinido. Int y float pueden ser de diferentes tamaños. ¿Qué estás realmente tratando de lograr? – EvilTeach
¿Estás tratando de ver la representación binaria de un flotador? memcpy() es una solución de bomba nuclear donde el simple martillo de una asignación con un tipo de transmisión haría. –
Puede usar un int sin firmar y evitar cualquier problema. – TJD