¿Cómo punteros para funcionar como miembro de la estructura útil en C?
No soy nuevo en la programación de C Pero no entiendo cuál es la utilidad de mantener el puntero para que funcione como un miembro de estructura en C. por ejemplo,
// 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);
}
¿Los programadores lo usan para dar forma orientada a objetos (OO) a su código C y proporcionar un objeto abstracto? O para hacer que el código parezca técnico.
Creo que, en el código anterior, la segunda forma es más suave y bastante simple también. En primer lugar, todavía tenemos que pasar&var
inclusofun()
Es miembro de la estructura.
Si es bueno mantener el puntero de la función dentro de la definición de la estructura, ayúdenos a explicar la razón.