Si prega di considerare il seguente codice:evitano 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);
Per quanto so che questo potrebbe comportare una rappresentazione trappola. Le mie domande:
- È vero?
- Se no, perché?
- In caso contrario, esiste un altro modo per evitare una possibile rappresentazione di trap?
Sembra sostanzialmente un comportamento non definito del male. Int e float possono essere di dimensioni diverse. Cosa stai cercando di realizzare? – EvilTeach
Stai cercando di vedere la rappresentazione binaria di un float? memcpy() è una soluzione di bomba nucleare in cui farebbe il semplice martello di un assegnatario con un typecast. –
È possibile utilizzare un int unsigned ed evitare problemi. – TJD