타입에 상관없이 변환.

 

#include <iostream>
#include <cfloat>
 
using std::cout;
using std::endl;
 
union ID
{
    char chars[10];
    int integer;
};
 
 
int main()
{
    ID id;
    id.integer = 10;
 
    // 해당 비트 배열을 int로 인식하겠다는 의미
    // 사용에 주의
    int* p = reinterpret_cast<int*>(&id);
    cout << *<< endl;
 
 
    // 특수한 경우 메모리의 특정 주소에 있는 값을 Device로 다루는 경우가 있을 수 있음
    //Device* p0 = reinterpret_cast<Device*>(0xabcd);
 
    
    // 0000,0000,0000,0000,0000,0000,0000,0001
    // int, 1의 비트 배열을 flaot 형태로 해석하면 float의 최소 값이 나옴
    int i = 1;
    float* a = reinterpret_cast<float*>(&i);
    cout << *<< endl;
    cout << FLT_TRUE_MIN << endl;
 
    // 일반 형변환은 단순히 1이 나온다
    float b = i;
    cout << b << endl;
 
}
cs

'::public > C++' 카테고리의 다른 글

전통적인 예외 처리  (0) 2020.12.14
C 스타일함수 스타일 변환  (0) 2020.12.14
dynamic_cast  (0) 2020.12.11
const_cast  (0) 2020.12.11
static_cast  (0) 2020.12.11

+ Recent posts