【发布时间】:2011-11-25 01:17:52
【问题描述】:
我正在读/写chars 到一个二进制文件。执行读/写的程序可以在 32 位或 64 位机器上运行。此外,该文件可以在 32 位环境中写入,然后在 64 位环境中读取,反之亦然。
因此,我需要某种方式来存储chars,以保证一定的宽度(越小越好)。我确信有一种公认/常见的方法可以做到这一点,但作为一个 C 新手我不知道,也无法通过谷歌找到任何东西..
有人知道诀窍吗?
【问题讨论】:
我正在读/写chars 到一个二进制文件。执行读/写的程序可以在 32 位或 64 位机器上运行。此外,该文件可以在 32 位环境中写入,然后在 64 位环境中读取,反之亦然。
因此,我需要某种方式来存储chars,以保证一定的宽度(越小越好)。我确信有一种公认/常见的方法可以做到这一点,但作为一个 C 新手我不知道,也无法通过谷歌找到任何东西..
有人知道诀窍吗?
【问题讨论】:
在任何“正常”的现代架构中,chars 始终为 8 位,无论 64/32 位问题如何。当您直接在文件中转储 int 或其他类型的二进制表示形式(大小和字节顺序可能因架构而异)时,就会出现这种情况,但普通的 chars 应该是安全的。
...显然,如果您正在编写文本,您应该选择某种编码,但这是一个完全不同的故事...
【讨论】: