我正在设计进行一些数学计算的 C 库。我需要指定序列化接口才能保存然后加载一些数据。问题是,在库的公共 API 中使用 FILE* 指针是否正确(从二进制兼容性的角度来看)?
目标平台有:
- Linux x86、x86_64 与 gcc >= 3.4.6
- Windows x86, x86_64 >= WinXP with VS >= 2008sp1
我需要尽可能多地兼容二进制文件,所以目前我的变体如下:
void SMModuleSave(SMModule* module, FILE* dest);
SMModule* SMModuleLoad(FILE* src);
所以我很好奇使用 FILE* 或更好地切换到 wchar*/char* 是否正确?