Я проектирую библиотеку C, которая выполняет некоторые математические вычисления. Мне нужно указать интерфейс сериализации, чтобы иметь возможность сохранять, а затем загружать некоторые данные. Вопрос в том, правильно ли (с точки зрения бинарной совместимости) использовать указатель FILE * в публичном API библиотеки?
Целевые платформы:
- Linux x86, x86_64 с gcc> = 3.4.6
- Windows x86, x86_64> = WinXP с VS> = 2008sp1
Мне нужно быть настолько совместимым с двоичными файлами, насколько это возможно, поэтому на данный момент мой вариант выглядит следующим образом:
void SMModuleSave(SMModule* module, FILE* dest);
SMModule* SMModuleLoad(FILE* src);
Так что мне любопытно, правильно ли использовать FILE * или лучше переключиться на wchar * / char *?