Одна конкретная проблема, о которой вам может потребоваться быть в курсе (например, если ваши файлы данных должны работать на разных платформах), это endianness .
Числа представлены по-разному на двоичном уровне на разных архитектурах. Системы с прямым порядком байтов располагают порядок старшего значащего байта, а системы с младшим порядком байта располагают порядок младшего значащего байта первым.
Если вы записываете некоторые необработанные данные в файл с одним порядком байтов, а затем читаете этот файл обратно в систему с другим порядком байтов, у вас, очевидно, будут проблемы.
Вы должны быть в состоянии получить порядковый номер во время компиляции на большинстве систем с sys/param.h
. Если вам нужно обнаружить его во время выполнения, одним из методов является использование объединения int
и char
, затем установите char
в 1 и посмотрите, какое значение имеет int
.