reinterpret_cast example
// File: reinterpret_cast.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int i = 5;
double d = 3.14;
cout << d << ' ' << static_cast<int>(d) << ' ' << *(reinterpret_cast<int*>(&d)) << endl;
ofstream fout("binaryfile");
//fout.write(static_cast<char*>(&i), sizeof(i)); // compile error
fout.write(reinterpret_cast<char*>(&i), sizeof(i));
fout.write(reinterpret_cast<char*>(&d), sizeof(d));
fout.close();
i = d = 0; // why is this a warning?
d = i = 0; // and not this?
ifstream fin("binaryfile");
fin.read(reinterpret_cast<char*>(&i), sizeof(i));
fin.read(reinterpret_cast<char*>(&d), sizeof(d));
fin.close();
cout << i << ' ' << d << endl;
return 0;
}