Funktionsptr: Parameterübergabe
-
Moinsen
hab eine Frage zum Thema Funktions-Pointer:
void UpdateFunction (struct Text *p, int a)
struct StringStr { unsigned int Text; void *Ptr; };
Funktionspointer:
StringStr->Ptr = (void *) UpdateFunction;
Meine Frage ist, wie übergebe ich die beiden Parameter der UpdateFunction, wenn ich den Funktionspointer aufrufe?
Ist es auch möglich, dass die UpdateFunction einen Rückgabewert hat?
short UpdateFunction (struct Text *p, int a)
StringStr->Ptr = (void *) UpdateFunction;
und dann im Code:
result = StringStr->Ptr;
wobei result ein short Wert ist.
derTim
-
void UpdateFunction (struct Text *p, int a) {} struct StringStr { unsigned int Text; void (*Ptr) (struct Text *p, int a); }; struct StringStr pUpdate; pUpdate.Ptr = &UpdateFunction; struct Text *param1; pUpdate.Ptr( param1, 10 ); // funktions aufruff
-
short UpdateFunction (struct StringStr *p, int a) { // ... return (short) a; } struct StringStr { unsigned int Text; void *Ptr; }; int main() { struct StringStr xyz; xyz.Ptr = NULL; xyz.Text = 1111; short(*ptr)(struct StringStr *p, int a) = UpdateFunction; ptr(&xyz, 4711); // Funktionsaufruf mittel Funktonszeiger return 0; }