1

ヘッダー ファイルで定義され、その関数 (例: 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*それを使用するたびに正しいデータ型にキャストする必要があることがわかりました。

もっと簡単/速いものはありますか?

4

0 に答える 0