Nabend
1. legt für deine funktionenspyter in der struktur erst mal typedefs an, anstelle sie direkt in der struktur zu definieren. die wirst du öfters mal brauchen. (struktur, Funktionsparameter, ggf für casts, ... ) witer wegen der type prüfung beim übersetzen. (damit passiern weniger fehler)
2. leg 3 Add funktionen an. z.B. addKeyDown, addKeyUp, addKeyPress
3. verwende als parameter die unter 1 definierte typedefs als parameter.
typedef int (*(KeyDown_T)(unsigned char scan1, unsigned char scan2, unsigned char shift));
struct key_funk
{
KeyDown_T Key_down;
}
void addKeyDown( KeyDown_T fktptr)
{
Key_Vunction.Key_down = fktptr;
}
2 hat den grund, da dur verschiedene Parameterlisten hast, damit must du nicht den funktionspointer unnötig durch die gegend kasten. den ohne cast wird sich das warscheinlich nicht übersetzen lassen. dein problem ist, das du bei deiner add implementierung eine funktion übergeben willst. das muss aber ein funktionspointer sein. ( daher auch der typedef, der einen funktionspointer definiert)
ggf hilft das auch weiter
http://www.math.uni-wuppertal.de/~axel/skripte/oop/oop7_9.htmlgruss