나는 약 1 시간 동안이 코드를 알아 내려고 노력하고 있지만 여전히 운이 없다.노동 조합 출력으로 고생하다
#include <stdio.h>
#include <stdlib.h>
int f(float f)
{
union un {float f; int i;} u = {f};
return (u.i&0x7F800000) >> 23;
}
int main()
{
printf("%d\n", f(1));
return 0;
}
나는이 작품은, 내가 F (1), F를 시도했습니다 이해가 안 돼요 (2), F (3), F (4) 물론 다른 결과를 얻는. 나는 또한 노동 조합에 대해서 많이 읽었습니다. 내가 반환에서 0x7F800000을 삭제하면 결과가 동일하게 나타났습니다. 나는 u.i가 생성되는 방법을 알고 싶다. 분명히 임의의 쓰레기는 아니지만 함수 인자에서 하나가 아니다. 여기서 무슨 일이 일어나고 있고, 어떻게 작동합니까?