Como os ponteiros para funcionar como membro struct são úteis em C?
Eu não sou novo em programação C. Mas eu não entendo o que é útil para manter o ponteiro para funcionar como um membro de estrutura em C. e.
// 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);
}
Os programadores a usam para dar forma a objetos orientados a objeto (OO) para o código C e fornecer objetos abstratos? Ou para fazer o código parecer técnico.
Eu acho que, no código acima, o segundo caminho é mais gentil e bastante simples também. Ainda assim, ainda temos que passar&var
, atéfun()
é membro da struct.
Se é bom manter ponteiro de função dentro da definição da estrutura, por favor, ajude a explicar o motivo.