Type-punning1 Type-punning Type-punning은 어떤 변수가 있을 때, 그 변수의 실제 값을 무시하고 형 변환 없이 다른 자료형으로 변환하는 것을 가리킵니다. 변환된 값은 메모리 상에서 원래 값과 똑같은 비트열로 표현되게 됩니다. 예를 들어, C에서 다음과 같은 코드를 고려해 봅시다: int i; i = 0x42f74000; printf("%f\n", *(float *)&i); // type punning 소스 코드를 실행하면 "123.625000"이 출력됩니다. 이 경우, 변수 i의 값은 0x42f74000인데, 이를 정상적인 형 변환으로 float 형으로 바꾸면 1.12350003e9라는 값이 나옵니다. 하지만 위와 같이 하면 형 변환이 일어나는 것이 아니라 int 형으로 표현된 변수 i를 막바로 float 형으로 읽어 들.. 2024. 3. 4. 이전 1 다음 728x90