小常識
最近亂想的時候,發現自己以前寫的程式碼不夠好。
如果我想寫入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());
至於為什麼,我不想多講,我只是想證明我沒看書而己...Orzoutfile.write(reinterpret_cast<char*>(data.c_array()), sizeof(unsigned int)*data.size());
---
看了也要記得啊...Orz
2 則留言:
呣,其實不相干的指標轉型的確是建議先轉成void*再轉成其他類型
reinterpret_cast 由於有破壞型別系統+編譯器實作不同的特性,一般建議是能免則免
顯然是我太粗枝大葉了,謝謝你的指正:)。
張貼留言