C, фиксированная ширина символов - PullRequest
0 голосов
/ 25 ноября 2011

Я читаю / пишу char s в двоичный файл.Программа, выполняющая чтение / запись, может работать на 32- или 64-разрядной машине.Кроме того, файл может быть записан в 32-битной среде, затем считан в 64-х и наоборот.

Поэтому мне нужен какой-то способ хранения char s, который гарантирует определенную ширину (чем меньше, тем лучше).Я уверен, что есть общепринятый / распространенный способ сделать это, но, будучи новичком в C, я не знаю этого, а также не могу найти что-либо через Google.

Кто-нибудь знает хитрость?

1 Ответ

3 голосов
/ 25 ноября 2011

В любой "нормальной" современной архитектуре char всегда имеют 8 бит, независимо от проблем с 64/32 битами.Они возникают, когда вы выгружаете непосредственно в файл двоичное представление int или других типов (которые могут различаться по размеру и порядку байтов в зависимости от архитектуры), но простые char s должны быть безопасными.

.... очевидно, если вы пишете текст, вам следует выбрать кодировку, но это совсем другая история ...

...