Proszę rozważyć następujący kod:unikać reprezentacja pułapka z 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);
O ile wiem, może to doprowadzić do reprezentacji pułapkę. Moje pytania:
- Czy to prawda?
- Jeśli nie, dlaczego?
- Jeśli nie, czy istnieje inny sposób uniknięcia możliwej reprezentacji pułapki?
To w zasadzie wygląda na złe nieokreślone zachowanie. Int i float mogą mieć różne rozmiary. Co tak naprawdę próbujesz osiągnąć? – EvilTeach
Czy próbujesz zobaczyć binarną reprezentację float? memcpy() to rozwiązanie dla bomb jądrowych, w którym mógłby działać prosty młotek z przypisem z typografią. –
Można użyć unsigned int i uniknąć problemów. – TJD