函数void指针和函数指针之间的映射

时间:2014-10-18 20:48:07

标签: c pointers function-pointers

我用c语言实现了一个通用链表:

typedef struct ListElmt_{
    void *data;
    struct ListElmt_ *nextElmt;
} ListElmt;

typedef struct _List {
    ListElmt *head;
    ListElmt *tail;
    unsigned long size; 
    void (*destroy)(void *data);
    void (*match)(void *fdata, *sdata);
}List;

但是我遇到了一个破坏我的链表通用的问题,当我希望数据是一个函数指针时,从指针到函数到指针的转换是不安全的。 我试图使用联合来解决问题。

typedef struct ListElmt_{
    typedef union {
        void *data;
        void (*fct)();
    }
    struct ListElmt_ *nextElmt;
} ListElmt;

0 个答案:

没有答案