不透明指针
使用C语言中的“不透明”指针,可以隐藏很多不想公开的细节-腾讯云开发者社区-腾讯云 (tencent.com)
不透明指针(Opaque Pointer)是一种通过隐藏底层数据结构实现接口与实现分离的核心技术,尤其在 C/C++ 中广泛应用于库设计、模块化开发和系统编程。以下是其核心原理、实现方式、优势及注意事项的详细解析:
ps : 有个面试官问了我一个问题:如何隐藏具体的实现?
答:就是像这样,在头文件中声明,在.cpp中实现。
// db.h
typedef struct DBHandle DBHandle;
DBHandle* db_open(const char* path);
void db_close(DBHandle* handle);
int db_query(DBHandle* handle, const char* sql);
// db.c
struct DBHandle {sqlite3* conn; // 实际数据库连接char* path;
};
DBHandle* db_open(const char* path) {DBHandle* handle = malloc(sizeof(DBHandle));sqlite3_open(path, &handle->conn); // 初始化私有成员return handle;
}