Problemas con typedef

CodeLin
06 de Octubre del 2003
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);

chuidiang
06 de Octubre del 2003
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