db.c 文件中的“Learn C the Hard Way”的 ex26 中,Zed 定义了两个函数:

static FILE *DB_open(const char *path, const char *mode) {
return fopen(path, mode);
}
static void DB_close(FILE *db) {
fclose(db);
}

我很难理解将这些非常简单的调用包装到 fopenfclose 的目的/需要。包装非常简单的函数(如上面给出的示例)有哪些优点(如果有)?

最佳答案

在这种特殊情况下,包装器用于隐藏 DB_openDB_readDB_close 都映射到文件操作的细节。

这种方法实现了一个抽象层,通过它可以访问所有与数据库相关的功能。这也提供了模块化,以后可能允许添加更多方法来打开/读取/关闭数据库。

正如 Michael Kohne 在评论中所解释的,应该改进这个包装器以完全隐藏例如FILE *db 的类型,将其替换为 struct DB_context *context;

关于c - C中简单包装函数的用途,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31405712/

10-11 23:13
查看更多