C でリンク リストを作成しようとしていますが、C++ スタイルのクラスにうまくパックしようとしています。私はいくつかの問題を抱えていますが、C で関数ポインタを使用しています。
typedef struct linkedList {
int count;
struct msgNode *front;
struct msgNode *back;
void (*addMSG)(unsigned char *, int, struct linkedList *);
} msgList;
void addMSG(unsigned char *data, int size, struct linkedList *self);
理想的には、リストを作成してから、構造内で「メソッド」(関数) を呼び出すだけで、C++ で見られる動作をシミュレートできるようにしたいと考えています。
現在、addMSG を呼び出すと、セグメンテーション エラーが発生します。これはもちろん、addMSG が関数を指していないためです。ただし、リンクされたリストを使用するたびにポイントする関数を指定する必要はありません。暗黙的に関数を指さなくても関数ポインターを持つ良い方法はありますか、それとも暗黙的に関数を指す必要がありますか?
これは、ここで示した部分的な実装にすぎません。最終的に、この構造体には必要な機能がすべて含まれます。これは、この質問を短く簡潔にするためです。