ヘッダー ファイルで定義され、その関数 (例: print_data、compare など) と共に、データ型で二重にリンクされたリストを管理する単純な C API を定義しました。
このようにして、必要なプロジェクトで簡単に使用できます。しかし、この ADTを同じプロジェクトで異なるデータ
で
使用したい場合はどうすればよいでしょうか?
ADT は、ヘッダー ファイルで次のように定義されています。
typedef struct DoublyLinkedList_ADT *dllistptr;
ソース ファイルには、次の 2 つの構造体があります。
struct DoublyLinkedListNode
{
dllnodeptr previous, next;
Data data;
};
struct DoublyLinkedList_ADT
{
dllnodeptr head, tail;
int size;
};
そして、データヘッダーファイルにはこれがあります:
typedef struct Data_type
{
int num;
}Data;
Data を必要なものに定義できるようにします。
これを達成する方法はありますか?
私が思いついたのは、すべての「データ」参照に「_OtherData」を追加するコードをコピーして貼り付けることだけです。しかし、これはあまり良い音ではありません。
他のいくつかの質問を読んだ後、データの定義を必要とする実装があり、void*
それを使用するたびに正しいデータ型にキャストする必要があることがわかりました。
もっと簡単/速いものはありますか?