У меня есть простая функция сохранения / загрузки файлов, но, поскольку это плагин, благодаря API хоста все записывается в std :: ostream в двоичном формате и снова считывается из std :: istream.
я использую
out.write((char *)&value,sizeof(type));
in.read((char *)&value,sizeof(type));
для чтения и записи, где тип "unsigned int", "double" и т. Д.
Я думал о возможных последствиях этого, что произойдет, когда файл будет сохранен на одной платформе и загружен на другой (из-за ограничений хоста это будут 32/64-битные Windows, 64-битные Linux и 64-битные Mac, только x86 процессоры). если я не использую тип переменного размера, например size_t (который отличается в 32-битной и 64-битной системах), могу ли я быть уверен, что «unsigned int» или «double» останутся одинаковой длины? Есть ли лучшие практики для этого?