Problemas con typedef
Hola me gustaria que alguien me explicara que hace este codigo:
typedef enum{INFERIOR,SUPERIOR} filaRegs;
typedef struct {
void (*A) (filaRegs);
void (*H) (filaRegs);
} funcionsLecturaFila;
typedef void (*funcionsLecturaSemiColumna) (int, char );
typedef void(*funcionsLecturaImportants) (int);
typedef void(*funcionsLecturaEspontanies) (int);
typedef enum{INFERIOR,SUPERIOR} filaRegs;
typedef struct {
void (*A) (filaRegs);
void (*H) (filaRegs);
} funcionsLecturaFila;
typedef void (*funcionsLecturaSemiColumna) (int, char );
typedef void(*funcionsLecturaImportants) (int);
typedef void(*funcionsLecturaEspontanies) (int);
Supongo que no tienes problemas con los typedef "normales" como el primero del enum.
Además de los tipos normales (int, double, float, etc), las funciones también tienen su tipo
void (*) (int) <--- Esto es el tipo de una función que admite de parámetro un int.
Puedes hacer punteros a funciones
void (*A) (int) <---- A es un puntero que puede apuntar a funciones que admitan de parametro un int.
Si tienes
void funcion1 (int a) {...}
void funcion2 (int b) { ... }
ahora puedes hacer
A = funcion1;
A(3); /* Se ejecuta funcion1(3) */
A = funcion2;
A(4); /* Se ejecuta funcion2(4) */
La estructura de tu ejemplo tiene dos campos que son punteros a funciones que admiten filaRegs como parametro.
Las tres ultimas lineas declaran tres tipos, que son punteros a funciones.
Espero que esta información te sirva para poder interpretar el codigo. Si no es asi, dime lo que sea y te dare una explicación algo más detallada.
Se bueno
Además de los tipos normales (int, double, float, etc), las funciones también tienen su tipo
void (*) (int) <--- Esto es el tipo de una función que admite de parámetro un int.
Puedes hacer punteros a funciones
void (*A) (int) <---- A es un puntero que puede apuntar a funciones que admitan de parametro un int.
Si tienes
void funcion1 (int a) {...}
void funcion2 (int b) { ... }
ahora puedes hacer
A = funcion1;
A(3); /* Se ejecuta funcion1(3) */
A = funcion2;
A(4); /* Se ejecuta funcion2(4) */
La estructura de tu ejemplo tiene dos campos que son punteros a funciones que admiten filaRegs como parametro.
Las tres ultimas lineas declaran tres tipos, que son punteros a funciones.
Espero que esta información te sirva para poder interpretar el codigo. Si no es asi, dime lo que sea y te dare una explicación algo más detallada.
Se bueno
