【问题标题】:C, Fixed width charactersC、定宽字符
【发布时间】:2011-11-25 01:17:52
【问题描述】:

我正在读/写chars 到一个二进制文件。执行读/写的程序可以在 32 位或 64 位机器上运行。此外,该文件可以在 32 位环境中写入,然后在 64 位环境中读取,反之亦然。

因此,我需要某种方式来存储chars,以保证一定的宽度(越小越好)。我确信有一种公认/常见的方法可以做到这一点,但作为一个 C 新手我不知道,也无法通过谷歌找到任何东西..

有人知道诀窍吗?

【问题讨论】:

    标签: c binary char


    【解决方案1】:

    在任何“正常”的现代架构中,chars 始终为 8 位,无论 64/32 位问题如何。当您直接在文件中转储 int 或其他类型的二进制表示形式(大小和字节顺序可能因架构而异)时,就会出现这种情况,但普通的 chars 应该是安全的。

    ...显然,如果您正在编写文本,您应该选择某种编码,但这是一个完全不同的故事...

    【讨论】:

    • 我实际上只是在写 url,它只会被生成数据的程序读取,或者它在另一台机器上的副本。 (这也不是什么大制作)所以我认为放弃任何编码都是可以接受的。这是可以接受的情况,还是我应该总是编码?
    • 只要你知道 C 库使用的默认编码在两端是相同的,你应该没问题...此外,URL 不像“通用”文本那样有问题,因为麻烦字符应该已经被转义了。
    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2012-01-01
    • 2023-03-31
    相关资源
    最近更新 更多