/**********signal_c.c**************/
#include
struct Punteros_a_Funciones{
void (*leer)();
};
typedef struct Punteros_a_Funciones puntero_a_func;
typedef void* data;
#define VOID_POINTER (void*)
#define SIGNAL_FUC(f) ((SignalFunc)f)
typedef void (*SignalFunc) (void);
void signal_1()
{
printf("signal_1\n");
}
void signal_2()
{
printf("signal_2\n");
}
puntero_a_func Pasando_punteros(SignalFunc funci)
{
puntero_a_func puntero = { SIGNAL_FUC(funci)};
return puntero;
}
int main()
{
puntero_a_func Voides;
SignalFunc funci;
funci=signal_1;
Voides = Pasando_punteros(funci);
Voides.leer();
funci=signal_2;
Voides = Pasando_punteros(funci);
Voides.leer();
return 0;
}
/**********************************/
Compilacion:
gcc -o signal_c signal_c.c
No hay comentarios:
Publicar un comentario