|
| Callback i C? Fra : bjef |
Dato : 26-09-01 11:24 |
|
Hej
Hvordan kan jeg lave en function i C som tager imod en pointer til en
anden function som så skal kaldes inde i denne function.
Eksempel :
void MyFunc(int a)
{
printf("%d\n",a);
}
void Func1(void *fun)
{
fun(10);
}
void main()
{
Func1((void *)MyFunc);
}
Håber der er andre end mig som fatter hvad det er jeg prøver.
Med venlig hilsen
Bjørn Rasmussen
--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"
| |
Igor V. Rafienko (26-09-2001)
| Kommentar Fra : Igor V. Rafienko |
Dato : 26-09-01 11:28 |
|
[ bjef.news@kandu.dk ]
[ snip ]
> Hvordan kan jeg lave en function i C som tager imod en pointer til
> en anden function som så skal kaldes inde i denne function.
Hva er problemet?
double
simple_apply( double (*fun_t)( double ), double value )
{
return fun_t( value );
}
int
main()
{
simple_apply( sin, 3.1415926536 );
simple_apply( cos, 3.1415926536 );
return 0;
}
Funksjonspekere ser ikke pent ut i C, så det kan lønne seg å bruke en
typedef:
typedef double (*pfun_t)( double );
double
simple_apply( pfun_t function, double value )
{
return function( value );
}
Verktøy som cdecl hjelper med ikke-trivielle typer i C.
ivr
--
Ehh... I'll have a McRudolf menu, please.
| |
bjef (26-09-2001)
| Kommentar Fra : bjef |
Dato : 26-09-01 15:27 |
|
Tak for svaret Igor V. Rafienko, det var lige det jeg mente.
--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"
| |
|
|