私は MySQL データベースを含むアプリケーションを作成しています。データベース関連のすべての操作を 1 つ (または将来的には複数) の特定のファイルに格納したいと考えています。DB モジュールのサービスを使用できるように、データベース接続 ID を他のモジュールにエクスポートする必要があります。
理想的には、これです。(db.h)
typedef ????? dbconn_t
他のファイルで
dbconn_t = db_newconnection(...);
db 接続の MySQL の型は MYSQL と呼ばれているので、
typedef MYSQL *dbconn;
しかし、これを行うには、自分の db.h に mysql.h を含めて、大量の関数やその他の型をプロジェクトの残りの部分にエクスポートする必要があります。
いくつかの解決策が思い浮かびます:
int 型をエクスポートし、int を MYSQL ポインターにマッピングするためのテーブルを保持する
データベース処理コードのすべての呼び出しで void ポインターと型キャストをエクスポートする
どちらもかなり悪いようです。これを助けるためのアイデアはありますか?