2011-11-25 101 views
0

我在读/写char s到二进制文件。读/写程序可以运行在32位或64位机器上。此外,该文件可以在32位环境中编写,然后在64位中读取,反之亦然。C,固定宽度字符

因此,我需要某种方式来存储char s,保证一定的宽度(越小越好)。我敢肯定有一个接受/通用的方式来做到这一点,但作为一个C新手我不知道它,也找不到通过谷歌..

是否有人知道这个把戏?

回答

3

无论64/32位的问题如何,在任何“正常”的现代架构char s始终是8位。当你直接在文件上转储int或其他类型的二进制表示(根据体系结构大小和字节顺序可能有所不同)时,会出现这些问题,但是普通的应该是安全的。

......很明显,如果你正在写的文字,你应该选择一些编码,但是这是一个完全不同的故事......

+0

我只是写的网址实际上,这只会由生成程序读取数据或其他机器上的副本。 (它也不是一个大生产的东西),所以我认为放弃任何编码是可以接受的。这是一个可接受的情况,还是我应该总是编码? – providence

+0

只要你知道在C库中使用的默认编码是相同的,你应该没问题...另外,URL不像“通用”文本那样有问题,因为麻烦的字符应该已经被转义。 –