[VC6] Funktionspointer in einem struct

Amon-Rê

Mitglied
Hi, bin grad dabei nen kleines Prog zu schreiben in dem ich unter anderem auch einen struct habe in dem ein Funktionspointer gespeichert werden soll. Kann mir jemand verraten, wie ich den struct-Parameter zu wählen habe damit ich dort den Pointer speichern kann

Code:
typedef struct
{
	int tid;
	char name[20];
	? functionpointer;
	int status;
	int exit;
} tcb;

Der Funktions-Pointer wird an das mit einer Funktion übergeben:
Code:
tcb *OSSpawn(char *name, void(*code)(void), int stksize, int pri, int uid)
{
	...
//hier müsste jetz die zuweisung auf
//den struct-Parameter erfolgen
	...
}

Kennt sich damit jemand aus
 
Hi,
schau mal da:
Code:
#include <iostream>

using namespace std;

//festlegen eines Funktionspointers funcion_p 
//Funktion muss 2 ints als Parameter nehmen und einen int zurückgeben
typedef int(*function_p)(int, int);

//beinhaltet einen function_p
struct adder
{
        function_p pointer;
        int a;
        int b;
        int result;
};

//addiert zwei Zahlen und gibt das Ergebniss zurück
int add(int a, int b){
        
        return a+b;
}

//ruft Funktionspointer function_p aus adder auf
void makeResult(adder* p){

        p->result = p->pointer(p->a, p->b);
}

//initialisiert die adder struct
void initAdder(adder* p){ 

        p->pointer = add;
        p->a = 5;
        p->b = 6;
}

int main(){

        adder p;
        initAdder(&p);
        makeResult(&p);
        cout << "Result from " << p.a << "+" << p.b << " is " << p.result << endl; 
        return 0; 
}

Gruß

RedWing
 
Zuletzt bearbeitet:
Zurück