いくつかの数学的計算を行う C ライブラリを設計しています。データを保存してからロードできるようにするには、シリアライゼーション インターフェイスを指定する必要があります。問題は、(バイナリ互換性の観点から) ライブラリのパブリック API で FILE* ポインターを使用することは正しいですか?
ターゲット プラットフォームは次のとおりです。
- Linux x86、gcc >= 3.4.6 を使用する x86_64
- Windows x86、x86_64 >= VS 搭載の WinXP >= 2008sp1
可能な限りバイナリ互換性を持たせる必要があるため、現時点で私のバリアントは次のとおりです。
void SMModuleSave(SMModule* module, FILE* dest);
SMModule* SMModuleLoad(FILE* src);
だから、 FILE* を使用するのが正しいのか、それとも wchar*/char* に切り替えるのが正しいのか知りたいです。