2011-11-25 100 views
0

我在讀/寫char s到二進制文件。讀/寫程序可以運行在32位或64位機器上。此外,該文件可以在32位環境中編寫,然後在64位中讀取,反之亦然。C,固定寬度字符

因此,我需要某種方式來存儲char s,保證一定的寬度(越小越好)。我敢肯定有一個接受/通用的方式來做到這一點,但作爲一個C新手我不知道它,也找不到通過谷歌..

是否有人知道這個把戲?

回答

3

無論64/32位的問題如何,在任何「正常」的現代架構char s始終是8位。當你直接在文件上轉儲int或其他類型的二進制表示(根據體系結構大小和字節順序可能有所不同)時,會出現這些問題,但是普通的應該是安全的。

......很明顯,如果你正在寫的文字,你應該選擇一些編碼,但是這是一個完全不同的故事......

+0

我只是寫的網址實際上,這隻會由生成程序讀取數據或其他機器上的副本。 (它也不是一個大生產的東西),所以我認爲放棄任何編碼是可以接受的。這是一個可接受的情況,還是我應該總是編碼? – providence

+0

只要你知道在C庫中使用的默認編碼是相同的,你應該沒問題...另外,URL不像「通用」文本那樣有問題,因爲麻煩的字符應該已經被轉義。 –