Jak wskaźniki mają działać jako element struktury przydatny w C?

Nie jestem nowy w programowaniu w C. Ale nie rozumiem, co jest przydatne w utrzymywaniu wskaźnika jako członka struktury w C. np.

    // Fist Way: To keep pointer to function in struct
    struct newtype{
        int a;
        char c;
        int (*f)(struct newtype*);
    } var;
    int fun(struct newtype* v){
        return v->a;
    }

    // Second way: Simple
    struct newtype2{
        int a;
        char c;
    } var2;
    int fun2(struct newtype2* v){
        return v->a;
    }

    int main(){

        // Fist: Require two steps
        var.f=fun;
        var.f(&var);

        //Second : simple to call
        fun2(&var2);    
    }

Czy programiści używają go do nadania kształtu obiektowego (OO) kodowi C i dostarczenia abstrakcyjnego obiektu? Lub, aby kod wyglądał technicznie.

Myślę, że w powyższym kodzie drugi sposób jest bardziej łagodny i całkiem prosty. W pierwszej kolejności musimy jeszcze przejść&var, parzystyfun() jest członkiem struktury.

Jeśli dobrze jest zachować wskaźnik funkcji w definicji struktury, uprzejmie pomóż wyjaśnić przyczynę.

questionAnswers(6)

yourAnswerToTheQuestion