我正在编写一个游戏,现在我能够通过一个类及其方法来实现一个文件系统。sqlite
为了让生活更轻松,我计划编写一些函数,如fopen
, fclose
, fread
,rename
等,以便能够隐藏基本函数并将我的调用定向到我的文件系统而不是原始文件系统。对于前三个功能,这些原型对我来说一切正常:
File *fopen(String _Filename, String _Mode); // i have my own optimized File struct
void fclose(File *_File);
size_t fread(String *_DstBuf, size_t _ElementSize, size_t _Count, File *_File);
这工作得很好,因为我要么返回另一个结构或参数,除了 aFile*
而不是 a FILE*
,但是重命名函数似乎有点棘手!
int rename(String _OldFilename, String _NewFilename);
这几乎是相同的原型。除了我使用std::string
(typedef'ed String
)比const char*
!知道如何说服我的编译器使用我的函数或忽略 stdio-one 吗?