星期二, 2月 10, 2009

小常識

最近亂想的時候,發現自己以前寫的程式碼不夠好。
如果我想寫入binary file,可能會這樣子寫

boost::array<unsigned int, 512> data;
std::ofstream outfile(filename.c_str(), std::ofstream::out | std::ofstream::binary);
outfile.write(static_cast<char*>(static_cast<void*>(data.c_array())), sizeof(unsigned int)*data.size());
其實寫入的那行,寫成
outfile.write(reinterpret_cast<char*>(data.c_array()), sizeof(unsigned int)*data.size());
至於為什麼,我不想多講,我只是想證明我沒看書而己...Orz

---
看了也要記得啊...Orz

張貼留言