#include <stdio.h>

typedef unsigned int (*FUNCPTR) (void *);
typedef unsigned int   FUNC     (void *);

typedef struct _hoge {
    FUNCPTR     pf; // 出来る
    FUNC      * f1; // 出来る
//    FUNC        f2; // 出来ない
} hoge;

unsigned int func(void *d)
{
    printf("%s(); called\n", (char *)d);
    return 0;
}

int main()
{
    hoge h;

    h.pf = &func; h.pf("h.pf");
    h.f1 = &func; h.pf("h.f1");
//    h.f2 = &func; h.pf("h.f2");

    return 0;
}