/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
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"


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste