/ Forside/ Teknologi / Udvikling / C/C++ / Spørgsmål
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
Vist : 836 gange
200 point
Dato : 26-09-01 12: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

 
 
Accepteret svar
Fra : Nyhedsbruger

Modtaget 210 point
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.

Godkendelse af svar
Fra : bjef


Dato : 26-09-01 16:27

Tak for svaret Igor V. Rafienko, det var lige det jeg mente.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste